MIPS:What';s是MIPS中整数常量的大小?
我的问题是: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(位)+?(位) 提前谢谢你 我假设您正在调用常量来“等同” 常数不占用数据段中的空间,无论何时用作操作数,它们都将被其表达式替换,
.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_值定义)