惜今怀远 发表于 2013-2-25 09:14:35

王爽汇编检查点2.3,求详解

下面的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

L]V[G 发表于 2013-2-25 09:14:36

sub ax,ax这个语句的意思是ax = ax - ax(ax和ax相减,结果存储在ax中), 所以ax的值就是 0,
jmp ax,就是跳转到ax寄存器所储存的值为ip的地方

L]V[G 发表于 2013-2-25 10:27:58

执行指令的时候,IP的变化是 :先改变IP的值,指向下一个语句,然后执行指令,也就是说,每执行一条指令,IP的值至少改变一次。这个程序的前两条指令,改变了2次的值,第三条改变了2次ip的值,至于改变的时刻,楼主的的答案已经有显示了

惜今怀远 发表于 2013-2-25 19:51:56

L]V static/image/common/back.gif
执行指令的时候,IP的变化是 :先改变IP的值,指向下一个语句,然后执行指令,也就是说,每执行一条指令,I ...

最后 IP的值位0000H,是因为最后ax的值为0000H,这个0000H怎么来的,题目里也没有说ax的值啊,在解释一下,谢谢

惜今怀远 发表于 2013-2-25 20:11:19

惜今怀远 发表于 2013-2-25 19:51 static/image/common/back.gif
最后 IP的值位0000H,是因为最后ax的值为0000H,这个0000H怎么来的,题目里也没有说ax的值啊,在解释一下 ...

明白了,谢谢了

想学IT 发表于 2013-3-8 22:56:47

仔细看视频,指令在指令缓冲器中时(也就是指令还未执行时),偏移地址就开始改变了

惜今怀远 发表于 2013-3-10 21:27:26

想学IT 发表于 2013-3-8 22:56 static/image/common/back.gif
仔细看视频,指令在指令缓冲器中时(也就是指令还未执行时),偏移地址就开始改变了

enen,谢谢了
页: [1]
查看完整版本: 王爽汇编检查点2.3,求详解