鬼人 发表于 2013-3-12 22:47:27

王爽汇编 检测点2.3 求解释!

题目: 下面的3跳指令执行后,CPU几次修改了IP? 都是什么时候? 最后IP的值是多少?
mov ax,bx
sub ax, ax
jmp ax
我是这样理解的:
第一次执行mov ax,bx 后IP的值+一次
第二次执行sub ax,ax 后ip的值加一次
第三次执行 jmp ax 后IP=0 然后再加一次2;
不是吗?
还有ax 不是2个字节嘛? 为什么图上面是mov ax,0123H; 在内存中只有3个字节。ax=B8;
我刚学,请多多指教!

小生我怕怕 发表于 2013-3-13 03:32:46

mov ax,bx   ;读入指令缓冲器IP++ (第一次)

sub ax,ax;读入指令缓冲器IP++,(第二次)sub命令把ax值清零了。(等同于ax-ax)

jmp ax;读入指令缓冲器IP++ (第三次)

执行jmp ax后,IP值被ax覆盖,IP==0。(第四次)

鬼人 发表于 2013-3-13 21:45:51

小生我怕怕 发表于 2013-3-13 03:32 static/image/common/back.gif
mov ax,bx   ;读入指令缓冲器IP++ (第一次)

sub ax,ax;读入指令缓冲器IP++,(第二次)sub命令把ax ...

   谢谢咯。呵呵! 下面的那个为什么ax 是一个字节。

风羽殁 发表于 2013-12-7 14:46:55

看了小生大神的回复 我懂了
页: [1]
查看完整版本: 王爽汇编 检测点2.3 求解释!