QQ登录

只需一步,快速开始

搜索
查看: 89|回复: 2

[技术交流] 关于检测点9.1的讨论

[复制链接]
最佳答案
1 
累计签到:14 天
连续签到:2 天
发表于 2017-8-9 13:17:00 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
看了好几个帖子,它们发的答案都与我想的不一样。
也不知道是我错了还是他们的错了。
下面我来说说我的答案。

assume cs:code
data segment
   ?????(书上说让咱们在这里添数据,让jmp指令跳转到第一条指令,也就是(mov ax, data))
data ends
code segment
start:mov ax, data      (这个是第一条指令)
      mov ds, ax
      mov bx, 0
      jmp word ptr [bx + 1]
code ends
end start
解题:
jmp word ptr [bx + 1]   ;设置偏移地址1位置开始的两个字节型地址的值为ip
那么data里必须得有三个字节。
先写db 0,0,0
这个就是好几个人的答案。
但是他们似乎忘记了两件事情:
1、系统分配的段,最少是16个字节。
2、如果data的值是0,就永远不会让jmp指令转移到第一条指令。

如果段的大小最小是16,而且从1开始,那么下标1的位置就应该是15。

0 1 2 3 4 5 6 7 8 9 A B C D E F    1~f的下一个下标需要跳15次,所以值应该是15

所以db 0,15,0
或者db 0,Fh,0
才是正确的答案。
个人观点,不喜勿喷,可以讨论
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
1 
累计签到:14 天
连续签到:2 天
 楼主| 发表于 2017-8-9 14:16:41 | 显示全部楼层
明白了,确实是db 0,0,0  
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
1 
累计签到:14 天
连续签到:2 天
 楼主| 发表于 2017-8-9 14:17:15 | 显示全部楼层
铛铛 发表于 2017-8-9 14:16
明白了,确实是db 0,0,0

因为jmp跳转的应该是本段的偏移地址。 那么第一条指令应该是0000
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-10-17 15:32 Powered by Discuz! X2.5 Theme by dreambred

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