All pastes #2104356 Raw Edit

Casalicchio Muori

public text v1 · immutable
#2104356 ·published 2012-01-20 10:23 UTC
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