使用数组将C代码转换为MIPS汇编语言

时间:2013-04-08 19:41:12

标签: c arrays assembly mips

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

f = k + A [5]

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

添加$ s3,$ s2,$ s4

这是对的吗?我是否必须对数组中的5做任何特殊操作?我对MIPS很新,所以如果非常感激的话,任何帮助都会有所帮助。

2 个答案:

答案 0 :(得分:1)

你是否正在为此做作业?如果是这样,你实际上是在写出一个可执行程序还是仅回复一系列问题?

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

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

答案 1 :(得分: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