有关汇编语言中列表文件地址偏移量和十六进制数所占字节的学习和思考

有关汇编语言中列表文件地址偏移量和十六进制数所占字节的学习和思考

在这里插入图片描述

地址偏移量

第12行,00000005是起始偏移量(个人认为也可以理解为执行本条语句前的所在地址),这个偏移量是指从程序起始地址开始5个字节的距离。那么这个00000005的偏移量是如何算出的呢?就要看第11行,首先明确11行和12行的00000005含义不同,前者为常数值(被mov给eax),后者为地址偏移量。第11行,起始偏移量为00000000,所以这5字节是由‘’B8 00000005‘’这个指令的执行而产生。

十六进制数所占字节

那么为什么’‘B8 00000005‘’会产生5字节偏移量,B8和00000005均为十六进制数,前者两个数字是一个字节,后者八个十六进制数是4字节,1+4=5。我们知道,一个二进制数为一位,而一个十六进制数等于四个二进制(16=2^4),所以一个十六进制数等于4位,等于0.5字节(1字节为8位),故两个十六进制数为一字节,八个二进制数为四字节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值