鱼C论坛

 找回密码
 立即注册
查看: 4510|回复: 8

JMP指令的机器码问题?

[复制链接]
发表于 2017-1-6 12:17:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

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

x
1111111.jpg

求教这个JMP的机器嘛,与0123H这个IP地址是如何对应的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-6 15:47:11 | 显示全部楼层
系统是翻译过去的    只是说这个数据表示这个指令
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-6 18:02:22 | 显示全部楼层
http://www.doc88.com/p-1127282654994.html
无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-6 19:48:53 | 显示全部楼层
谢谢楼的回答,这个图我看过,也知道如何换算,但这里的IP应该是0123H,但这个FF260000,换成二进制,是00100110吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-6 20:57:43 | 显示全部楼层
小佛天下 发表于 2017-1-6 19:48
谢谢楼的回答,这个图我看过,也知道如何换算,但这里的IP应该是0123H,但这个FF260000,换成二进制,是001 ...

ff26 应该是固定的,表示这种寻址方式
后面的0000,表示这种寻址方式的偏移地址
无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-6 21:58:57 | 显示全部楼层
哦,但如果FF26是固定的,0000是偏移地址,但这个程序运行的结果是IP=0123H,也就是说,JMP转到0123的,这个在机器码中没有体现吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-6 22:14:12 | 显示全部楼层
22222222222.jpg
挺有意思 ,在ds:[0]里换了好几个值,但JMP的机器码都没有变,依然是FF260000,这是为什么会固定的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-7 11:15:01 | 显示全部楼层
引自《汇编金手指》:
          <2> 段内间接转移指令: JMP OPRD
       例如: JMP BP               ; 转向(SS):(BP)
               JMP JNEAR[BX]        ; 转向(CS):(BX)+JNEAR
                JMP WORD PTR[BX][DI] ; 转向(CS):(BX)+(DI)

<4> 段间间接转移指令:JMP OPRD其中的OPRD为存储器双字操作数.段间间接转移只能通过存储器操作数来实现.
        例如:指令JMP DWORD PTR[BX],其操作数是一个双字类型的存储器操作数,它指向数据段DS,段内偏移为(BX).从这个DS:BX开始的前两个字节中,存放了目标地址的段内偏移值,后两个字节中,存放了目标地址所在的新的段的段基址,分别将它们送至IP及CS,便形成了新的转移地址.


楼主的指令 JMP WORD PTR DS:[0]
实际上在编译器内只能认为是“段内”跳转,因为读取的是WORD字单元,但是又强制指定了DS段。本应执行的跳转是指向CS:0的,但是这里因为强制指定了DS段,所以出现了奇怪的现象……至于FF26这个段地址如何而来,只有天知道……

正确的指令应该是: jmp dword [0]或者jmp dword ds:[0]
这样才能读取ds:0中的段地址与偏移地址!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-8 02:49:11 | 显示全部楼层
来赚点积分.....
那个jmp word ptr ds:[0]所对应的机器码是FF260000是在合理不过了,编译时总不会先找出ds:[0]存放的值再跳到那个地址吧,这个代码是通用的阿,记录成跳转到ds:[0]所存放的值的位置是最适合也跟原本写的代码最相关的阿,跟里面存放什么没关系吧,代码并没有先后顺序的关系阿,可以直接跳转到那段执行,而没有先去对ds:[0]赋值阿
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-19 18:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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