ARM架构中的.align是什么?

7
我是一名新手级别的汇编编码者,所以我对.align指令感到有些困惑。我在很多地方查阅了它的含义。https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/ok05.html 这个链接中,在页面右侧的红色框中给出了.align指令的描述。我参考过的另一个地方是http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/Babecdje.html。一个地址是4字节对齐还是8字节对齐是什么意思呢?
如果我在我的代码中使用以下指令:
.align 4
pattern:

那么这意味着分配给模式的地址将采用4*n或16*n(2^4 = 16)的形式。

3
你忘了提到你使用的汇编程序是哪一个。根据汇编程序的不同,可能是你提到的两种情况之一。请查阅相应的手册,不要随意谷歌搜索 ;) - Jester
我使用 arm-linux-gnueabi-as 命令来编译汇编代码。 - Aditya
6
请参考gnu as手册。手册指出,在arm架构上将获得2^n字节对齐。 - Jester
1个回答

7

如果一个地址可以被“n字节”整除,那么就称它为“n字节对齐”。

这也可以表述为“如果一个地址的右侧m位都是零,则该地址是2的m次幂字节对齐的。”

对齐是非常普遍的要求,即硬件作为其编程模型的一部分要求始终尊重某些对齐要求。未能这样做可能会导致硬故障,即处理器停止。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接