如何将这个mips代码转换为C?

时间:2017-05-20 05:00:14

标签: c assembly mips

我被要求将此mips代码转换为c。我真的非常努力,并在Qtspim模拟器上运行此代码。但我不知道如何转换为C?

源数组(b)的初始地址存储在$ a1中,目标数组(a)的初始地址存储在$ a0中。数组的长度存储在$ a2寄存器中。

      li $t0,0
      beq $a2,$0,skip
loop: lw $t1,0($a1)
      bgt $t0,2,else
      lw $t2,-8($a0)
      lw $t3,-4($a0)
      addu $t2, $t2,$t3
      addu $t1,$t2,$t1
else: sw $t1,0($a0)
      addiu $a0,$a0,4
      addiu $a1,$a1,4
      addiu $t0,$t0,1
      bne $t0,$a2,loop
skip:

我不明白的是

lw $t2, -8($a0) 

lw $t2, -4($a0)

在数组结构中,我们知道A [-2]或A [-1]是错误的。然后,这是如何工作的?

提前谢谢。

0 个答案:

没有答案