鱼C论坛

 找回密码
 立即注册
查看: 3072|回复: 4

关于用visual studio反汇编出来的结果

[复制链接]
发表于 2016-3-16 17:54:59 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 stevenmtroy 于 2016-3-17 09:26 编辑

刚学完8086汇编,用visual studio反汇编出来的结果,请问每行前面那些十六进制数是什么含义?后面那一部分应该是每行的指令对应的机器码,那前面那部分比如000E39A6,000E39A7那些又是什么意思呢?还有那一大堆的问号又是什么含义呢?
QQ截图20160316174724.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-3-16 18:28:56 | 显示全部楼层
前面那些十六进制是地址,指令的地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-16 19:44:35 | 显示全部楼层
1、000E39XX什么的都是十六进制的地址。
2、现在的CPU早已经支持32位,64位,所以寻址方式不需要再用段地址:偏移地址的方式。
3、段地址:偏移地址的方式是8086CPU里面的寻址方式,这是因为8086CPU是16位的,而8086CPU的地址总线是20位。20位地址总线理论上可寻址的大小为2的20次方,即1024KB,而8086CPU如果直接采用四位的十六进制表示地址的话,则只能表示64KB,这样将导致1024KB-64KB的空间计算机将会利用不到,因此就出现段地址:偏移地址的表示方式。
4、段地址:偏移地址的本质是,段地址X16+偏移地址,这样得到的就是一个5位十六进制的地址值(即20位二进制)。
5、32位地址的理解:上面的地址值有8个十六进制数字,你应该知道1个16进制数字相当于4个二进制数字,因此8X4=32位。32位地址可寻址空间为:2的32次方,有4096M大小(4G)。
6、VC反编译出来的就是32位地址。
7、??代表无意义的东西,你也可以理解为0之类的玩意,反正就是没用,不用管。以后反汇编注入代码时,可以把要注入的代码放在这些地方。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-17 09:25:20 | 显示全部楼层
多谢,问题已解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-17 09:26:01 | 显示全部楼层
多谢啦,讲得很清楚,问题已解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 14:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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