我被要求将此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]是错误的。然后,这是如何工作的?
提前谢谢。