MIPS:MIPS 中整数常量的大小是多少?

MIPS: What's the size of integer constants in MIPS?

我的问题是:MIPS 中整数常量的大小是多少?

Here 我找到了它们的用法。

If I have such a constant defined in my data segment and I want to calculate the size of the data segment, what size do I take for this constant: size of word, byte, half,..?

这是一个数据段示例:

.data
array: .word 1, 2, 3
LEN = 2                ; Here's the constant

数据段大小为:3 * 32(bit) + ?(bit)

提前致谢!

我假设你正在调用 constants"equates".

常量在数据段中不占用 space,只要用作操作数,它们将被它们的表达式替换,并且大小应与操作数匹配,因此在您的示例中,数据段将是使用 4*3 字节 = 12 字节(96 位)。

例如,如果您在 MARS 模拟器中编写

.data
 array: .word 1,2,3
.eqv LEN 2
.eqv LARGE_VALUE 20000
 buffer: .space LARGE_VALUE

那么您可以使用标识符 LEN 代替 2,例如

 li $a1, LEN
 li $a2, LARGE_VALUE

在这种情况下,LEN 在汇编第一条指令时将是 16 位立即数,汇编器将发出代码为第二条伪指令执行 32 位加载。数据段中定义的缓冲区将为 20000 字节(由 eqv LARGE_VALUE 定义)