As exemplified in answers to this question (I hope that closed questions that are linked to, don't get purged), the instruction mnemonics in early assembly languages had a 1-to-1 correspondence to the machine instructions they denoted.
For example, if the memory access instructions have different opcodes depending on the direction of the data transfer, there will be assembly instructions with an abbreviation of "load" and of "store" in their names, like LDA
for "load accumulator" and STA
for "store accumulator".
On the other hand, one of the x86 assembly languages could use the same mnemonic MOV
for the whole group of data transfer instructions which encompass several different bit patterns in their opcodes, be it a load or a store. The actual meaning of the instruction is then represented by the order and the type of the operands.
This can be thought of as a step up in the level of the language, sparing the programmer from remembering the gory details of the instruction set architecture.
Which architecture/platform was the first to have this kind of a "smart" assembly language?
Also, at the bottom of this answer there seems to be an example of an assembly language program for the IAS machine with formulas serving as mnemonics, e. g. S(x)->R
for loading from memory. It appears that this style was used in the IAS emulator, but it is unclear if there was an assembler program on the actual machine that understood these mnemonics (doubtful, as in the late 1940s or early 1950s is would be too wasteful to use a 7-character mnemonic where a 2-character one would do).
Were there actual assembly languages that used formula-style instruction mnemonics rather than abbreviations of words, e. g. something like MTR
(Memory To register R) instead of what would be LDR
as a "conventional" mnemonic, and RTM
(register R To Memory) instead of what would be STR
, etc.?