|
主题 : : 检测点2.3中CPU几次修改IP? [待解决] |
回复[ 11次 ]
点击[ 838次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2008-06-25 12:36 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-06-24 11:15 |
执行mov ax,bx后 值为IP初始值+mov ax,bx的指令长度
执行sub ax,ax后 值为IP初始值+mov ax,bx的指令长度+sub ax,ax的指令长度
怎么有很多人说有四次修改?
后面的jmp ax修改了两次IP吗?
为什么啊?请高手指点一下,先谢谢了:) | | |
|
|
|
|
[第1楼]
[ 回复时间:2008-06-25 13:37 ]
[引用]
[回复]
[ top ] | |
荣誉值:44
信誉值:0
注册日期:2008-04-11 13:33 |
4次
请认真理解CPU工作流程。
取指-修改IP使其指向下一条指令-执行指令-继续取指
1)取第一条指令mov ax,bx后,IP修改为下一条指令sub ax,ax的地址,IP修改1次;
2)执行mov ax,bx
3)继续取指sub ax,ax,IP修改为下一条指令jmp ax的地址,至此IP已经修改了2次;
4)执行sub ax,ax
5)继续取指jmp ax,IP修改为下一条未知指令的地址(这里虽未列出下一条指令,但IP仍然是指向下一条指令的地址的),至此IP总共修改了3次;
6)执行jmp ax,这时因为CPU遇到的是Jmp指令,该指令用于修改IP,故IP又被修改为AX中的内容了,程序将跳转到AX内容所指的地方去继续执行。因此,IP总共修改了4次。
其实这道题的关键在于理解CPU的工作流程,请再认真看看书,不要贪快,真正理解才是最重要的。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2008-06-25 13:43 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-06-24 11:15 |
是不是这样?
第一次:执行完mov ax,bx后 值是IP初始值+mov ax,bx的指令长度
第二次:执行完sub ax,ax后 值是IP初始值+ mov ax,bx的指令长度+sub ax,ax的指令长度
第三次:读入jmp ax 值是IP初始值+ mov ax,bx的指令长度+sub ax,ax的指令长度+ jmp ax的指令长度
第四次:执行jmp ax后 值是0 | | |
|
|
|
|
[第3楼]
[ 回复时间:2008-06-25 13:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-06-24 11:15 |
|
|
|
|
|
[第4楼]
[ 回复时间:2008-06-25 13:49 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-06-24 11:15 |
不好意思,这里的楼层计数不一样。谢谢一楼的duckgaga^_^ | | |
|
|
|
|
[第5楼]
[ 回复时间:2008-11-11 12:34 ]
[引用]
[回复]
[ top ] | |
荣誉值:1
信誉值:6
注册日期:2007-11-14 11:28 |
|
|
|
|
|
[第6楼]
[ 回复时间:2008-11-11 14:55 ]
[引用]
[回复]
[ top ] | |
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48 |
楼上分析的没错,ip的值也就是ax的值。
这里使用了一个前面没学过的指令sub 执行sub ax,ax后ax=0 | | |
|
|
|
|
[第7楼]
[ 回复时间:2008-11-14 10:13 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2008-11-11 08:18 |
去网上查了一下,sub 的意思是相减的。。所以ax =0 | | |
|
|
|
|
[第8楼]
[ 回复时间:2013-01-18 15:22 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-01-08 21:28 |
|
|
|
|
|
[第9楼]
[ 回复时间:2013-05-24 23:37 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-05-19 22:41 |
|
|
|
|
|
[第10楼]
[ 回复时间:2013-06-15 14:53 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-06-15 10:10 |
晕,你们看好楼层啊,还是1楼的最给力,
2楼是楼主吧。 | | |
|
|
|
|
[第11楼]
[ 回复时间:2013-07-14 16:48 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-07-14 15:44 |
|