反汇编代码格式

005CF969  |.  8BF8          mov     edi, eax
 
第一列就是指令的物理地址,由程序每次装入的不同而可能不同,若在不同机器上大多时候是不相同的,就是在内存中的地址,也就是所谓的"地址编号",可以这样理解的.
第二列就是指令字,也就是说二进制才是机器所认识的编码的,由于其计数较难,用十六进制表示,这个十六进行就是说机器码的.比如51就是将ECX入栈.等等,机器码是比较难记的,且一个指令可能有几个码来表示,就比如add指令,如果是加寄存器是一个指令,加内存又是一个指令,这时才出现了一种助记符,也就是所谓的汇编,比如将所有的加的功能都算作是add这个助记符,再根据指令泽成机器码.第三列你就明白了,就是反汇编出来的汇编语句,比如push ecx就是将ECX进栈,这个指令机器码都是根据CPU的不同而不太相同,所以一个类型的CPU都有自己支持的指令,而所有的指令的集合就叫做"集",比如我们常用的"X86指令集",用这个指令集所写的程序显然可以正常运行在X86构造的CPU系统上的.而CPU发展中一般是对以前的指令集的一个扩展而已,所以以后的型号的CPU也有可能支持的,但如果是不CPU指令集肯定是不行的.比如INTEL X86写出的程序工作在AMD上是不行的,所以如果软件支持很多平台时,要有不同的处理的!
地址是一般是顺序存放的,地址差就是指令字的长度,比如51就是一位长,而8BCF就是二位长,都是可以进行段内转移的!
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(1) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值