我正在尝试为斐波那契序列执行此 MIPS 汇编代码(试图在 QtSpim 中找到第 10 个斐波那契数,fib(10),它不断抛出错误,例如:“PC=0x7ffff774 发生异常”和“错误地址在文本中阅读......”
我不确定我做错了什么,我认为错误可能在主要语句中。
.data
num: .word 10
ans: .word -1
.text
.globl main
main:
lw $a3, num
jal fib
sw $v1, ans
li $v0, 1
move $a0, $v1
syscall
fib: addi $sp, $sp, -12
sw $a0, 8($sp)
sw $ra, 4($sp)
sw $s0, 0($sp)
slti $t0, $a0, 2
beq $t0, $0, else
addi $v0, $a0, 0
j exit
else: addi $a0, $a0, -1
jal fib
add $s0, $v0, $0
addi $a0, $a0, -1
jal fib
add $v0, $v0, $s0
exit: lw $a0, 8($sp)
lw $ra, 4($sp)
lw $s0, 0($sp)
addi $sp, $sp, 12
jr $ra