本文由博主本人在网上学习摘抄内容
地址1:http://www.eefocus.com/chenzhufly/blog/09-03/167345_64cc1.html
地址2:http://www.liweifan.com/2012/01/11/assembly-embedded-system-balignl-arm/
balign的几种形式
四种功能基本相同,不同之处在于填充时的字节数。.align和.balign是1个字节1个字节的填充,.balignw是2个字节2个字节的填充,而.balignl一次填充4个字节。
我们以balignl为例说明,它的完整指令格式为: .balignl {alignment} {,fill} {,max}。
第一个参数alignment为一个正整数,对齐时要以alignment的值的整数倍为结束地址,以当前地址为起始地址,进行字节填充,比如当前地址为20,而alignment的值我们设定为16,那么字节填充自20开始,结束于20后第一个16的倍数地址处,即32处。
第二个参数fill即我们选定的,用来填充的数值。balignl模式下,最大为4字节,不够4字节系统会自动补够4字节,此参数可选,不标则采用默认值0。
第三个参数max也是可选项,默认值为alignment。若对齐时偏移量大于max,则不偏移。同上例,从16--32,偏移量为16,如果max我们设置为8,那么该偏移不进行。