汇编语言,偏移地址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个回答

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

应该是3次。

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

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

嗯,jmp本身也算一次。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!