我是新手使用MIPS中的堆栈和函数,我们正在将一个c ++程序转换为MIPS,以便了解函数的工作原理。我的问题是将这个c ++代码翻译成MIPS,intArr[valsToDo - i] = GetOneIntByVal(entIntPrompt);
。
我将展示到目前为止我所拥有的内容但仍会出现address out of range
错误。
# intArr[valsToDo - i] = GetOneIntByVal(entIntPrompt);
addi $a0, $sp, 41
jal GetOneIntByVal
sw $v0, 41($sp)
lw $a1, 77($sp)
sub $a3, $t1, $t1 #$a3 has valsToDo - i
sll $a3, $a3, 2 #$a3 has (valsToDo - i) * 4
add $a3, $a3, $a1 #$a3 has &intArr[valsToDo - i]
lw $a2, 0($a3) #$a2 has intArr[valsToDo - i]
我做错了什么?