监测点2.3
下面的3条指令执行后,cpu几次修改ip?都是在什么时候,最后ip的值为什么等于0呢?mov ax,bx
sub ax,ax
jmp ax
求列出详细解答,还有sup又是什么指令,
《业余爱好,活到老学到老嘛》不要骂我菜鸟哦,会很伤我的心的。最后就。。拜托了。。
修改了4次IP的值第一次mov ax,bx 第二次sub ax,ax将ax清零 第三次将ax的值设为IP第四次执行ax后 最后IP肯定为零啦又跳ax去了 你说的sup应该是sub把 是减法指令我也很菜、、、、、 先谢谢你,那么就说sub ax,ax的意思就把ax中的值减去ax就等于0吗? 先谢谢你,那么就说sub ax,ax的意思就把ax中的值减去ax就等于0吗? £让莪饰蘾ん 发表于 2012-4-5 15:18 static/image/common/back.gif
先谢谢你,那么就说sub ax,ax的意思就把ax中的值减去ax就等于0吗?
对,就是AX中的值减去AX的值。 loop 发表于 2012-4-5 15:39 static/image/common/back.gif
对,就是AX中的值减去AX的值。
您说的修改4次我就搞不懂了,不是3次吗?
假设CS=1485H,IP=0100H
1、读取第一条指令mov ax,bx,读入后IP=0100H,指令执行后,CS不变,IP=IP+2,IP=0102H
2、读取第二条指令sub ax,ax ,读入后IP=0102H,指令执行后,ax=0000H,CS不变,IP=IP+2,IP=0104H
3、读取第三条指令jmp ax ,读入后IP=0104H,指令执行后,CS不变,IP=0000H
在整个过程中,CPU共3次修改IP,最后IP中的值为:0000H
£让莪饰蘾ん 发表于 2012-4-5 15:43 static/image/common/back.gif
您说的修改4次我就搞不懂了,不是3次吗?
假设CS=1485H,IP=0100H
1、读取第一条指令mov ax,bx,读入后 ...
读入 jmp ax时,IP值会改变,才能执行jmp ax。
所以执行jmp ax时,ip值变化2次,一次是读入jmp ax,第2次是修改ax的值。 如果还不明白,请参考第2章,2.9~2.11小节,里面有8086CPU读取、执行指令的工作原理。 我也为着个题有点烦... 没什么的,弄懂原理什么都简单:P
页:
[1]