MIPS中的以下表达式是否正确

时间:2018-05-27 22:12:18

标签: mips

我正在做作业,我只是想知道我是否正确地表达了这一点。表达式为f = -g - A[4]

f为$s0,g为$s1,A的基地址为$s6

subu $t1, $zero, $s1 // negate g
addi $t2, $zero, 4   // index for A
add  $t3, $t2, $s6   // put A[4] in $t3
subu $s0, $t1, $t3   // f = -g -A[4]

1 个答案:

答案 0 :(得分:0)

这不正确。

首先,结果取决于A的类型,因为您需要添加不同的值来获取偏移量。

此外,您并不需要单独的add来计算常量数组元素的偏移量。如果addi $t3, $s6, 4是字节数组,则可以使用A;如果是字数组,则可以使用addi $t3, $s6, 16。当然,当索引很大或者它是变量时,你需要它吗

但是,您还需要从该计算地址加载值

lw $t4, 0($t3)

因为添加地址并不能为您提供存储在该地址中的内容