2 yinwzwzx yinwzwzx 于 2014.12.19 13:16 提问

汇编语言,偏移地址IP移动次数与当前数值问题

今天遇见一道题,只有一点不明白,就是为什么最后IP等于0000H他跟AX的关系是什么?
下面的3条指令执行后,cpu几次修改IP?都是在什么时候?最后IP中的值是多少?

mov ax,bx

sub ax,ax

jmp ax

答:一共修改四次

第一次:读取mov ax,bx之后

第二次:读取sub ax,ax之后

第三次:读取jmp ax之后

第四次:执行jmp ax修改IP

最后IP的值为0000H,因为最后ax中的值为0000H,所以IP中的值也为0000H
求牛人帮忙解释一下

3个回答

caozhy
caozhy   Ds   Rxr 2014.12.19 13:26

IP会在执行每条指令后增加1
在遇到jmp的时候,直接就设置ip了

应该是3次。

因为sub ax, ax相当于ax = ax - ax = 0
所以jmp ax就是jmp 0

yinwzwzx
yinwzwzx   2014.12.21 16:07

你第二个解释的很对,后来我也会了,但是修改IP的次数真的是4次,因为执行完jmp这条指令后IP就修改了一次,但是它本身还要跳转一次,也就是您说的自己更改IP一哦次,所以一共是4次,不过还是要谢谢您啊,互相学习吧

caozhy
caozhy   Ds   Rxr 2015.01.03 07:28

嗯,jmp本身也算一次。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!