GNU汇编程序在该部分的末尾添加了不必要的填充

时间:2015-03-28 16:05:12

标签: assembly arm

考虑GNU汇编程序的以下汇编程序代码段:

.section .text
.align 4
.string "text"

没有任何填充,这将导致5个字节的部分,对齐为2 ^ 4 = 16.但是,我验证了GNU汇编程序(ARM目标)在部分的末尾添加了填充,以便部分&# 39; s长度是16的倍数。这似乎是不必要的,因为对齐保证是关于部分的开头,而不是结束。那么为什么汇编器会在最后添加填充?可以禁用吗?

将上面的汇编程序片段放在名为test.s的文件中并运行以下命令:

arm-none-eabi-gcc -c -o test.o test.s
arm-none-eabi-objdump -x test.o

观察文本部分的对齐方式是2 ^ 4 = 16,并且.text部分的大小是0x10而不是5。

0 个答案:

没有答案