注册 登录
编程论坛 汇编论坛

IP的值改变

换空依晨 发布于 2013-09-30 09:27, 653 次点击
下面的指令被执行后 cpu几次修改了IP ?都在什么时候 ?最后的IP值是多少?
mov ax,bx
sub ax,ax
jmp ax
求详细解答
5 回复
#2
zklhp2013-09-30 11:28
这个问题搜索本版有相关讨论
#3
hu9jj2013-10-02 17:32
这可是汇编的基础知识啊,教材上会有详细介绍的。
#4
z1371732013-11-05 00:25
IP修改了4次,最后的值为ax
#5
极点寸芒2013-11-05 18:30
啊哦,你要熟悉指令读取的流程啊,从CS:IP指向的地址,读取指令,通过输入输出控制电路,放入指令缓冲器,“此时,IP自动增加”,然后指令缓冲器把指令放入执行控制器,此时指令才被执行,所以你这个代码
mov ax,bx        ;先把ip+2,也就是ip自动指向了下一条指令,然后此条指令被执行
sub ax,ax        ;ip+2,此时ip指向了下一条指令,此条指令被执行
jmp a            ;ip+2  ip指向了下一条指令,此条指令被执行,执行后,因为是短跳转,所以又改变了ip

所以这三条指令被执行后,总共改变了四次ip
#6
极点寸芒2013-11-05 18:31
额,看错了,把ax看成标号a了,反正就是这么个意思吧
1