gfking 发表于 2011-8-1 19:11:37

求教关于指令编码的问题

在《汇编语言》第34页

有这么一段:mov ax,0000(B8 00 00)
            add ax,0123 (05 23 01)
            mov bx,ax    (8B D8)
            jmp bx       (FF E3)

其中,用16进制码表示的操作数部分都能看明白。但是,关于指令和寄存器的编码就看不太懂了。

比如mov,按照ASCII码表每个字母都应该用一个字节来表示,其中m=01101101,o和v省略,

那么,mov指令应该对应3个字节。这里,却用B8表示mov ax,怎么理解呢??

weixianlang 发表于 2011-8-1 20:00:50

这是机器码, 不是ASCII码, 不用ASCII码转换 , 比如E9 表示jmp一样, 类似的之类还有例如
CC表示int 3
90   表示 nop
74   je/hz
.......

x8888k 发表于 2011-8-1 22:25:05

Be_envious 发表于 2011-8-2 02:29:50

这个是规定

gfking 发表于 2011-8-2 15:31:59

谢谢各位回答我的问题。

我大概明白了点,意思是说:指令的编译结果,是汇编语言编译器决定,是吗?和ASCII码的编码方式是两码

事情?
页: [1]
查看完整版本: 求教关于指令编码的问题