鱼C论坛

 找回密码
 立即注册
查看: 3292|回复: 3

[争议讨论] 监测点2.3 解答有点不明白

[复制链接]
发表于 2012-1-14 20:57:25 | 显示全部楼层 |阅读模式
20鱼币

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

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

最佳答案

查看完整内容

一般的指令的执行过程如下: 1.读指令的机器码,同时修改IP指向下一条要执行的指令 2.执行指令 可以看出,一般的指令执行过程修该了1次IP(“同时修改IP指向下一条要执行的指令”处) 跳转指令的执行过程: 1.读指令的机器码,同时修改IP指向下一条要执行的指令 2.执行指令 可以看到,跳转指令和一般指令的执行流程一样,问题出在跳转指令的“2.执行指令”会改一次IP,所以跳转指令要修改2次IP 有人问为什么不在“1.读 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 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改对的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-1-15 00:13:34 | 显示全部楼层
建议楼主回去认认真真的复习下  2.10章节   

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

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

所以这里就不说为什么了,虽然直接说了会让您省去相定的烦恼..........
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-1-16 21:30:20 | 显示全部楼层
4次没有错,因为jmp ax 这条指令是有字节的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 18:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表