从C到MIPS的mips数组?

时间:2014-01-20 05:52:37

标签: mips

B[8] = A[i–j];

在尝试将上述C表达式转换为MIPS时如何使用数组? 我想的是:

lw $t0, 16 ($s7)
sub $t1, $s3, $s4
lw $t2, $t1 ($s6)

考虑到

$s6 holds A
$s7 --- B
$s3 ---- i
and $s4 -- j

但我不确定如何进行计算以实际进入A [i-j]

任何建议?

1 个答案:

答案 0 :(得分:1)

好吧,首先,16($s7)是错误的。假设B和A是32位整数的数组,则偏移量为8 * 4 = 32

接下来,只需添加$t1$s6并从那里加载。

lw  $t0 32($s7)
sub $t1 $s3 $s4
add $t1 $s6 $t1
lw  $t2 0($t1)