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]
任何建议?
答案 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)