机器码对AX寄存器有特殊处理?
debug下观察opcode:
Mov [2000],dl 8816 10001000 00-010-110
Mov [4000],bx 891e 10001001 00-011-110
按规则:
Mov [4000],ax 8906 10001001 00-000-110(但实际是:A30040)
机器码对AX寄存器有特殊处理?
[解决办法]
不是所有指令都是这样的,只是部分指令的某些模式才是这样专门针对 AX/AL (accum) 有专门的指令编码,比如:(accum = AX/AL, mem: 内存, reg: 通用寄存器, imm: 立即数)
mov accum, mem
mov mem, accum
xchg accum, reg16
add accum, imm
sub accum, imm
[解决办法]
别人已经注册10年了
[解决办法]
标准编码也是可以的,89 06 00 40,只不过针对al、ax、eax有短编码而已。