rendered paste body.text
.globl main
main:
addi $a0, $zero, 4
jal Fibonacci
Fibonacci:
addi $sp, $sp, -8
sw $s0, 0($sp)
sw $s1, 4($sp)
sw $ra, 8($sp)
add $s0, $zero, $a0 #s0 = initial number
addi $t0, $zero, 1 #t0 = 1 // for beq comparison
beq $s0, $zero, ret_0 #if (s0 = 0) ret_0
beq $s0, $t0, ret_1 #else if (s0 = 1) ret_1
addi $a0, $a0, -1 #a0 = a0 - 1 //initial a0-1
jal Fibonacci #v0 = fibonacci(a0-1)
add $t1, $zero, $v0 #t1 = v0
addi $a0, $a0, -1 #a0 = a0 - 1 //initial a0-2
jal Fibonacci #v0 = fibonacci(a0-2)
add $t2, $zero, $v0 #t2 = v0
add $v0, $t1, $t2 #v0 = fibonacci(a0-1)+fibonacci(a0-2)
ret_1:
addi $v0, $zero, 1 #ret_1
ret_0:
addi $v0, $zero, 0 #ret_2
exit:
lw $s0, 0($sp)
lw $s1, 4($sp)
lw $ra, 8($sp)
addi $sp, $sp, 8
jr $ra