这条指令具体是做什么的?我知道它会尝试将数据与特定数字的倍数对齐,但为什么需要这样做?其他汇编程序中是否有等效指令?
问问题
12925 次
3 回答
9
您通常对齐数据以获得更好的性能。对于大多数处理器,内存访问在不访问特定字节边界时会受到一些惩罚。对于其他汇编程序,通常有某种伪操作 .align
。大多数编译器还对齐它们的数据结构(尽管您可以出于调试目的禁用它)。
另请参阅此Wikipedia 条目。
于 2009-06-20T06:19:36.367 回答
1
其他汇编程序中是否有等效的指令?
MASM 有一个对齐指令: http: //msdn.microsoft.com/en-us/library/dwa9fwef (VS.80).aspx
于 2009-06-20T06:45:29.110 回答
0
它将所有内容与 2 的 n 次方对齐。它不是指令,而是将被翻译成指令的指令
至于它的用法,例如:
mips32 指令总是 32 位长。所以每条指令都应该从字边界开始。在代码开始之前添加 .align 指令,将事物对齐到 32 位。这有很多好处,包括它只需要 1 次内存访问来获取指令,并且它可能对指令缓存有益。
于 2009-06-20T22:04:43.423 回答