当前位置: 代码迷 >> 汇编语言 >> 机器码对AX寄存器有特殊处理?解决办法
  详细解决方案

机器码对AX寄存器有特殊处理?解决办法

热度:3810   发布时间:2013-02-26 00:00:00.0
机器码对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有短编码而已。
  相关解决方案