xiaot1014 发表于 2012-1-14 20:57:25

监测点2.3 解答有点不明白


详细出处参考:http://www.fishc.com/a/kehouti/_huibianyuyan_/655.html
我觉得 第三次修改完之后 IP为0 就没了
这里的第四次 按照意思理解 执行完 jum ax 后 IP应为该语句下一条语句的IP
但是最后答案为 0 说明 应该没有第四次才对 是我理解有误吗?

请知道的学长们帮下小弟,多谢 !!

仰望天上的光 发表于 2012-1-14 20:57:26

一般的指令的执行过程如下:
1.读指令的机器码,同时修改IP指向下一条要执行的指令
2.执行指令
可以看出,一般的指令执行过程修该了1次IP(“同时修改IP指向下一条要执行的指令”处)

跳转指令的执行过程:
1.读指令的机器码,同时修改IP指向下一条要执行的指令
2.执行指令
可以看到,跳转指令和一般指令的执行流程一样,问题出在跳转指令的“2.执行指令”会改一次IP,所以跳转指令要修改2次IP

有人问为什么不在“1.读指令的机器码,同时修改IP指向下一条要执行的指令”这里直接把IP改对。原因是,此时命令的机器码还没被读到CPU里,根本不知道这是什么指令,当然也不知道它是跳转指令,所以在步骤1里是不可能直接把跳转的IP改对的。

lsgo 发表于 2012-1-15 00:13:34

建议楼主回去认认真真的复习下2.10章节   

自己看明白的地方才能理解的最深刻

以前我也不清楚是什么回事重回看了好几次才注意到那些让人忽视的细节

所以这里就不说为什么了,虽然直接说了会让您省去相定的烦恼..........

Mr.HO 发表于 2012-1-16 21:30:20

4次没有错,因为jmp ax 这条指令是有字节的
页: [1]
查看完整版本: 监测点2.3 解答有点不明白