微笑向暖~ 发表于 2017-10-22 21:11:38

这个答案有点看不懂,还请大牛不吝赐教



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


解:
修改4次;第一次在CPU读取“mov ax,bx”后,第二次在CPU读取“sub ax,ax”后,第三次在CPU读取“jmp ax”后,第四次在CPU执行完“mov ax,bx”后;最后IP中的值为0。

丶忘却的年少o 发表于 2017-10-22 21:17:15

首先很明确的是三条指令,ip会执行三次。你可以把ip想象成一个箭头,指到哪就执行哪里的语句。
jmp是跳转,必定会引发ip的改变,ip会跳转到 jmp给的地址,就是ax。这里是第四次跳转。
因为 jmp ax执行前,sub ax,ax,所以ax=0,jmp ax就是jmp 0,那 ip就会跳到0的地方执行
页: [1]
查看完整版本: 这个答案有点看不懂,还请大牛不吝赐教