【发布时间】:2016-10-06 01:37:22
【问题描述】:
这条指令到底是做什么的?我知道它会尝试将数据与特定数字的倍数对齐,但你为什么需要这样做呢?其他汇编程序中是否有等效指令?
【问题讨论】:
标签: memory assembly alignment mips instruction-set
这条指令到底是做什么的?我知道它会尝试将数据与特定数字的倍数对齐,但你为什么需要这样做呢?其他汇编程序中是否有等效指令?
【问题讨论】:
标签: memory assembly alignment mips instruction-set
您通常对齐数据以获得更好的性能。对于大多数处理器,在不访问特定字节边界时,内存访问会受到一些惩罚。对于其他汇编程序,通常有某种pseudo-op.align。大多数编译器也会对齐它们的数据结构(尽管您可以出于调试目的禁用它)。
【讨论】:
其他汇编器中是否有等效的指令?
MASM 有一个对齐指令:http://msdn.microsoft.com/en-us/library/dwa9fwef(VS.80).aspx
【讨论】:
它将所有内容与 2 的 n 次方对齐。它不是指令,它是一个将被翻译成指令的指令
关于它的用法,例如:
mips32 指令总是 32 位长。所以每条指令都应该从字边界开始。在代码开始之前添加 .align 指令,将事物对齐到 32 位。这有很多好处,包括它只需要 1 次内存访问来获取指令,而且它可能对指令缓存有益。
【讨论】: