让你发癫 发表于 2012-7-9 11:49:11

求助《检测点2。3,为什么IP值会被修改了4次》

本帖最后由 让你发癫 于 2012-7-9 22:16 编辑

下面的3条指令执行后,CPU几次修改了IP?都在什么时候?最后IP中的值是多少?
mov ax, bx
sub ax, ax
jmp ax

答:CPU 4次修改了IP
第一次:执行完mov ax, bx后
第二次:执行完sub ax, ax
第三次:读入jmp ax
第四次:执行完jmp ax后
最后IP中的值是0。


为什么执行完mov ax, bx后IP的值会被修改,
不是执行jmp ax后IP的值才被修改的吗?
想了好久,还 是不明白,请高手解释一下,谢谢谢谢

让你发癫 发表于 2012-7-9 12:36:29

:'(没人帮 我解释下吗

让你发癫 发表于 2012-7-9 12:46:17

来人啊,,救命啊,

一个人 发表于 2012-7-9 20:08:57

同求 我也有点没想明白

让你发癫 发表于 2012-7-9 22:15:36

我明白了,哈哈,现在回头看自己问了一个小白问题,CPU每执行一次IP递增了一次而指向下一个偏移地址

敉沧 发表于 2012-7-9 23:51:26

mov ax,bx
读取这条指令,放入指令缓冲器。
ip+2指向下条指令。
执行指令。bx=ax

读取sub ax,ax,放入指令缓冲器。
ip+2,指向下条指令。
执行指令。ax=0

读取jmp ax,放入指令缓冲器。
ip+2。指向下条指令。
执行指令,ip=ax=0。
4次修改。
页: [1]
查看完整版本: 求助《检测点2。3,为什么IP值会被修改了4次》