我需要将一些MIPS汇编指令翻译成C代码。我觉得我做到了,但它似乎很不直观。需要帮忙吗?我们有变量f、g、h、i、j存储在寄存器$s0、$s1、$s2、$s3和$s4中。数组A和B的基址分别存储在$s6和$s7中。每个字节为4个字节。代码中的注释是我的。
addi $t0, $s6, 4 # $t0 = A[1]
add $t1, $s6, $0 # $t1 = A[0]
sw $t1, 0($t0) # $t0 = A[0]
lw $t0, 0($t0) # $t0 = A[0]
add $s0, $t1, $t0 # f = A[0] + A[0]
我觉得我的做法不对。如果我们从未使用 $t0 A[1],为什么要先创建它呢?
&A[0]
而非A[0]
。 - Peter Cordes