首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

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

2012-04-03 
机器码对AX寄存器有特殊处理?debug下观察opcode:Mov [2000],dl8816 10001000 00-010-110Mov [4000],bx891e

机器码对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有短编码而已。

热点排行