Assembly Mips,如何使用lw偏移量在一个字中获得第二个值
我有这个密码Assembly Mips,如何使用lw偏移量在一个字中获得第二个值,assembly,mips,Assembly,Mips,我有这个密码 size: .word 8 9 我想得到9并将其存储在一个寄存器中,到目前为止,我已经尝试过这个 lw $a0, size lw $a0, 4(size) 但我认为我没有使用正确的偏移量,如何从中获取8和9。word并将它们存储在单独的寄存器中要加载地址,请使用la,而不是lw。然后,经过它4个字节 la $t0, size lw $a0, 0($t0) # 8 lw $a1, 4($t0) # 9 此外,正如@Eraklon所说,逗号分隔您的.word
size: .word 8 9
我想得到9并将其存储在一个寄存器中,到目前为止,我已经尝试过这个
lw $a0, size
lw $a0, 4(size)
但我认为我没有使用正确的偏移量,如何从中获取8和9。word并将它们存储在单独的寄存器中要加载地址,请使用
la
,而不是lw
。然后,经过它4个字节
la $t0, size
lw $a0, 0($t0) # 8
lw $a1, 4($t0) # 9
此外,正如@Eraklon所说,逗号分隔您的.word指令:
size:
.word 8, 9
这似乎是正确的。在调试器/模拟器中尝试时发生了什么?根据您的汇编器,您可能希望编写
大小+4
。不应是,在8
之后?不清楚缺少的逗号是否是打字错误,也有一些汇编器(例如spim)接受它。在任何情况下,这都会产生明显的错误消息。另外,一些汇编程序接受lw$a0,4(大小)
或lw$a0,大小+4
并生成适当的代码,因此您不必手动执行la
。但是,你的代码是有效的,而且是最安全的。