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