使用递归计算fibonalci序列(mips代码)

时间:2014-11-06 13:32:44

标签: recursion mips

我使用递归的这个c代码用于fibonalcci序列:

int fib(int n)
{
if (n==0) return 0;
if (n==1) return 1;
else return fib(n-1)+fib(n-2);
}

我希望将该c代码翻译成mips代码(寄存器a0包含n的值,寄存器s0包含fib(n)的值) 这就是我所做的:

F: bne $a0,$zero,L
addi $s0,$zero,0
addi $s1,$zero,1
jr $ra
L: addi $sp,$sp,-4
sw $ra,0($sp)
addi $a0,$a0,-1
jal F
addi $t0,$s1,0
add $s1,$s0,$s1
addi $s0,$t0,0
lw $ra,0($sp)
addi $sp,$sp,4
jr $ra

但似乎没有完全按照c代码执行的操作,我想修复mips代码,让它完全像c代码一样。我如何修复mips代码?

0 个答案:

没有答案