MIPS基本lw查询

时间:2013-04-01 23:59:30

标签: assembly mips

我正在尝试在C ++和MIPS之间进行转换,我有一个问题要求我转换B [8] = A [i-3] i,A和B是存储在注册表$ s0,$ s4和$ s5中。我坚持的部分是如何将i-3存储到A []中。是否可以做这样的事情?:

lw $t0, 32($s5)
addi $t1, $s0, -3
lw $t2, $t1($s4)
sw $t0, 0($t2)

我对MIPS还有点新意,主要是想弄清楚你是否可以用这种方式使用lw。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

您不能使用寄存器作为索引来调用lw。假设寄存器中的值是正确的,您需要分两步执行:

add $t1, $t1, $s4
lw $t2, 0($t1)

不要忘记,当访问每个元素长度为4个字节的字数组时,需要将索引乘以4。