FIBO C CODE MIPS

Salut les gars je suis en train de traduire mes fibonacci c code pour code assembleur MIPS, cependant, lorsque je lance le code MIPS à mon MIPS simulateur, il ne semble pas à la fin.

Code C:

int fibo(int n)
{
    if(n<2) return 1;
    else f(n-1)+f(n-2);
}

int main()
{
    fibo(5);
}

Assemblée De Code:

main: addi $sp, $sp, -4
sw $ra, 0($sp)

addi $a0, $zero, 5
jal fibo; 

lw $ra, 0($sp)
addi $sp, $sp, 4

fibo: addi $sp, $sp, -12
sw $s0, 0($sp)
sw $s1, 4($sp)
sw $ra, 8($sp)

slti $t0, $a0, 2
beq $t0, $zero, ELSE

addi $v0, $zero, 1
jr $ra

ELSE: addi $s0, $a0, 0
addi $a0, $a0, -1
jal fibo;

addi $s1, $v0, 0
addi $a0, $s0, -2
jal fibo

add $s1, $s1, $v0
j EXIT

EXIT: lw $s0, 0($sp)
lw $s1, 4($sp)
lw $ra, 8($sp)
addi $sp, $sp, 12

jr $ra
Étape à travers le fibo de routine dans le simulateur pour voir où les choses commencent à aller mal.

OriginalL'auteur user3489500 | 2014-04-20