fc631889534 发表于 2014-1-23 01:25:49

监测点2.3 又来麻烦大神了 先谢谢大神

读取指令 mov ax,bx进入指令缓冲器    ip+3   执行指令mov ax,bx      (执行结果ax=bx中的数据)
读取指令sub ax,ax进入指令缓冲器    ip+3   执行指令sub ax,ax       (执行结果ax=0)
读取指令   jmp ax进入指令缓冲器   ip+2   执行指令jmp ax         (执行结果ip=0)


上面看到别人的分析


一条命令多少字节IP就加多少
:dizzy:新手求问 怎么知道他是几个字节啊   
mp ax进入指令缓冲器   ip+2这一条说是2个字节我还能理解点




mov ax,bx进入指令缓冲器    ip+3
sub ax,ax进入指令缓冲器    ip+3
这2个为什么 说是3个字节呢
求解到底咋看字节呢 谢谢进来的大神 谢谢:loveliness:

LinuxDeepin 发表于 2014-1-23 02:37:24

谁跟你说 mov ax,bx ,IP + 3 呀! 这明显错误了呀!
寄存器与寄存器之间的通信为两个字节
也就是    mov ax,bx, IP + 2

其实想查看指令到底有多少个字节,很简单。
打开 debug ,输入 a ,回车
然后输入如:mov ax,bx
屏幕显示为:0AE0:100mov ax,bx
再次输入如:sub ax,ax
屏幕显示为 :   0AE0:102sub ax,ax

十六进制的 102-100 等于多少,不用我说吧~~

fc631889534 发表于 2014-1-23 11:08:17

LinuxDeepin 发表于 2014-1-23 02:37 static/image/common/back.gif
谁跟你说 mov ax,bx ,IP + 3 呀! 这明显错误了呀!
寄存器与寄存器之间的通信为两个字节
也就是    mov ...

:cry原来是错的 谢谢大神 还没看到哪里 :lol:

无名侠 发表于 2014-2-3 14:20:23

Intel指令手册,你看看吧,我觉得这个没必要记。
页: [1]
查看完整版本: 监测点2.3 又来麻烦大神了 先谢谢大神