汇编地址与偏移地址

1.汇编地址与偏移地址

代码经过编译之后的文件内容,即代码对应的汇编地址如下:

;汇编地址	机器码   源程序代码	
00000000	B800B8	 mov ax,0xb800
00000003	8EC0	 mov es,ax
;注释不编译

对应的汇编地址与偏移地址的关系如下图:

将该段程序加载到物理地址0x60000处,能看到汇编地址与偏移地址是一致的。

2.align

Intel处理器要求段在内存中起始地址为16或32字节对齐,即能被16(32)整除:align =16align =32

segment header
db 0xaa
segment code align=16
db 0xbb
segment date align=16
db 0xcc

汇编地址如下:code段为16位对齐,因此要从0x0010开始,用0x00填充

0x00000000:	aa	00	00	00	00	00	00	00	00	00	00	00	00	00	00	00
0x00000010:	bb	00	00	00	00	00	00	00	00	00	00	00	00	00	00	00
0x00000020:	cc	00	00	00	00	00	00	00	00	00	00	00	00	00	00	00
3.vstart

vstart可以使汇编地址从段开头开始计算:

segment header 
db 0xaa				;0x00
segment code align=16 vstart=0 
db 0xbb				;0x00
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值