最后顺便看一下第三个参数的应用情况:
假如将上面的程序 .balignl 16, 0xdeadbeef 改为 .balignl 16, 0xdeadbeef, 4 ,那么反汇编则会看到下面的结果:
[root@CentOS ARM]# arm-linux-objdump -d aslign2.o
aslign2.o: file format elf32-littlearm
Disassembly of section .text:
00000000 <_start>:
0: ea000000 b 8
4: e1a00000 nop ; (mov r0, r0)
00000008 :
8: e3a00101 mov r0, #1073741824 ; 0x40000000
c: e1a00000 nop ; (mov r0, r0)
因为指定最大才能跳过 4 个字节来对齐,但是这个 16 字节的对齐需要填充 8 个字节,所以伪指令无效。