MIPS:What';s是MIPS中整数常量的大小?

MIPS:What';s是MIPS中整数常量的大小?,mips,mips32,spim,Mips,Mips32,Spim,我的问题是:MIPS中整数常量的大小是多少 我发现了它们是如何使用的 如果我在数据段中定义了这样一个常量 计算数据段的大小,我对此采取什么大小 常量:字的大小,字节,半字节 下面是一个数据段示例: .data array: .word 1, 2, 3 LEN = 2 ; Here's the constant 数据段的大小为:3*32(位)+?(位) 提前谢谢你 我假设您正在调用常量来“等同” 常数不占用数据段中的空间,无论何时用作操作数,它们都将被其表达式替换,

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

我发现了它们是如何使用的

如果我在数据段中定义了这样一个常量 计算数据段的大小,我对此采取什么大小 常量:字的大小,字节,半字节

下面是一个数据段示例:

.data
array: .word 1, 2, 3
LEN = 2                ; Here's the constant
数据段的大小为:3*32(位)+?(位)

提前谢谢你

我假设您正在调用常量来“等同”

常数不占用数据段中的空间,无论何时用作操作数,它们都将被其表达式替换,并且大小应与操作数的大小匹配,因此在您的示例中,数据段将使用4*3字节=12字节(96位)

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

.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_值定义)