【发布时间】:2015-09-17 22:17:27
【问题描述】:
所以我目前被困在一个问题上,我很高兴看到是否有人可以详细说明我的问题。
问题如下
令寄存器 $s1 为数组 A 的基数,
注册$v0为变量X,
注册$t0为索引i,
然后为以下语句编写 MIPS 指令
K = A[i] + A[i+3];
解决方法如下
sll $t1, $t0, 2
add $t2, $s1, $t1
lw $t3, 0($t2)
lw $t4, 12($t2)
add $v0, $t3, $t4
我对这个问题的解决方案是
addi $t1, $t0, 3 # for the $t1 <- i+3
lw $t2, 0($t1) # for the $t2 <- A[i+3]
lw $t3, 0($t0) # for the $t3 <- A[i]
add $v0, $t2, $t3 # for the K <- A[i+3] + A[i]
所以问题是,
我真的不明白为什么解决方案没有将索引添加 3 (i+3) 然后从添加的索引加载。
也是解决方案的第二行,添加 $t2、$s1、$t1,如何添加带有索引的基数(即 $t2
提前致谢。
如有类似问题的任何详细说明,将不胜感激。
【问题讨论】: