请问,我在看汇编教程,这里面的B8是什么意思,05又是什么?不懂啊,还有8BD8,FFE3

如题所述

指令对应的机器码
比如说

第一行中的 B8 =1011 1000 b

前8位代表操作码,该操作码指定一个寄存器和一个立即数作为操作数
【intel没公布操作码的解码方法,所以解码指令的操作码字段目前只有穷列遍】
后3位(000b)代表寄存器,000b代表eax,ax,al,mm0,或xmm0
再后面的 0000h,代表立即数追问

mov ax,123
ax = 123
mov bx,ax
bx = 123
jmp bx,那就等于123?
我还是不太理解CS和ip,能讲讲吗

追答

CS是代码段,IP是指令指针,也就是指向下一条需要执行的指令的指针。
jmp bx ;; 进跳转,跳转到 IP = bx
jmp DWORD PTR[BX] ;; 远跳转,跳转到 CS:IP 处。
代码分段,段地址存进各段寄存器中,这样能访问到的地址就远比16位能表示的数据要大了。

追问

Jmp怎么同时跳转CS,IP?

追答

远跳转,指定的地址高16位就是段地址,低16位就是偏移地址。
不单纯可以跳到CS,还可以是DS,ES。。等等其他段。
主要是你指定的地址中的高16位是哪个段寄存器中的内容。
没指定时默认为CS。
还可以 jmp FS:AX

追问

我懂了。。。汇编难

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-25
机器码
相似回答