Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly Mips,如何使用lw偏移量在一个字中获得第二个值_Assembly_Mips - Fatal编程技术网

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
。但是,你的代码是有效的,而且是最安全的。