2

好的,所以我必须将以下 C 代码段转换为 MIPS 程序集。

f = k + A[5]

问题告诉我 f 存储在寄存器 $s3 中,k 在 $s2 中,数组 A 的基地址是 $s4。这就是我的回答:

添加 $s3、$s2、$s4

这个对吗?我必须对数组中的 5 做任何特别的事情吗?我对 MIPS 很陌生,所以如果非常感谢,任何和所有的帮助。

4

2 回答 2

1

你在做这个家庭作业吗?如果是这样,您实际上是在编写一个可执行程序还是只是在回答一系列问题?

无论哪种方式是的,您都需要考虑数组中的 5。问题是告诉您$s4指向数组的基地址,而不是第 5 个索引。

提示:A[0] 将与数组的基地址位于同一地址。

于 2013-04-08T19:46:30.833 回答
0

试试这个。(在我的头顶上)。记住每个索引是 * 4。

li $t2, 6            # init 6 to $t2
addi $t2, $t2, $t2   # $t2 * 2
addi $t2, $t2, $t2   # $t2 * 2
addi $t1, $t2, $s4   # A[6 * 4] 
lw $t4, 0($t1)       # load A[6] int $t4
addi $s3, $s2, $t4   # obtain f
于 2013-04-08T19:52:37.387 回答