好的,所以我必须将以下C代码段转换为MIPS Assembly。
f = k + A [5]
问题告诉我f存储在寄存器$ s3中,k在$ s2中,而数组A的基地址是$ s4。这就是我的回答:
添加$ s3,$ s2,$ s4
这是对的吗?我是否必须对数组中的5做任何特殊操作?我对MIPS很新,所以如果非常感激的话,任何帮助都会有所帮助。
答案 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