我在NASM手册中读到align属性指定了段起始地址的低位数必须强制为零。
"
如上面所示,使用链接ALIGN来指定有多少低位段起始地址必须强制为零。对齐值给定可以是1到4096之间2的任意次幂;在现实中,只有支持的值为1、2、4、16、256和4096,因此如果指定8它将四舍五入到16,32,64和128都将四舍五入到256,以此类推。注意,对4096字节边界的对齐是一个PharLap扩展的格式,可能不是所有的支持连接器。
如果没有指定任何align属性,则被认为是0或1?
对于支持align的其他格式,链接文档页面列出了默认值。对于bin
格式,它没有,但快速检查(您也可以轻松执行)显示它是4
。
我使用"org"指令自定义对齐:
START:
org START + ((($-START)/8)*8)+8
org START + ((($-START)/32)*32)+32
org START + ((($-START)/128)*128)+128