In reference guides I see that MOV
is opcodes 88, 89, 8A, ... etc.. Why are there multiple opcodes for one instruction?
That is because those instructions are slightly different from the CPU point of view. Although mnemonic is the same, operands are different. For example in this reference, the instruction column clearly shows the difference between those opcodes.