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

时间:2016-06-22 11:01:23

标签: mips mips32 spim

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

Here我发现了它们的用法。

  

如果我在数据段中定义了这样的常量并且我想要   计算数据段的大小,我采取什么规模   常量:字的大小,字节,一半,......?

以下是数据段示例:

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

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

提前谢谢!

1 个答案:

答案 0 :(得分:1)

我假设您将常量调用&#34;等同于<#34;

常量不占用数据段中的空间,每当用作操作数时,它们将被其表达式替换,并且大小应与操作数的大小匹配,因此在您的示例中,数据段将使用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定义)