我的问题是:MIPS中整数常量的大小是多少?
Here我发现了它们的用法。
如果我在数据段中定义了这样的常量并且我想要 计算数据段的大小,我采取什么规模 常量:字的大小,字节,一半,......?
以下是数据段示例:
.data
array: .word 1, 2, 3
LEN = 2 ; Here's the constant
数据段的大小为:3 * 32(位)+?(位)
提前谢谢!
答案 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定义)