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

关于汇编指令中mov 89和8B的有关问题

2013-06-19 
关于汇编指令中mov 89和8B的问题。X86汇编指令中mov ebx,eax有几种格式89C3和8BD8看雪上的帖子给的解释是88

关于汇编指令中mov 89和8B的问题。
X86汇编指令中
mov ebx,eax有几种格式
89C3和8BD8
看雪上的帖子给的解释是
88    /r     MOV r/m8,r8             Move 
89    /r     MOV r/m32,r32           Move 
8A    /r     MOV r8,r/m8             Move 
8B    /r     MOV r32,r/m32           Move 
搞不懂一个mov ebx,eax怎么有这么多格式

还有机器码的第二位应该是涉及寄存器的。
C3的2进制是:11000011
D8的2进制是:11011000
前2位是Mod,这个已经在Inter手册上看到过了
后6位我的理解是分为两段,每一段代表一个寄存器,eax是000;ebx是011
为什么8B的mov 后面的操作数里的寄存器是反的的?
[解决办法]
不要纠结,指令编码有交集而已。
[解决办法]
89 和 8B 就是 MOV 指令操作码域里 d 位的差异,d 位表明的就是操作方向,所以后面的寄存器编码上两个就要互换位置了。

热点排行