Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- msg1: .asciiz "Give n: "
- msg2: .asciiz "give me a0: "
- .text
- main:
- li $v0, 4
- la $a0, msg2
- syscall
- li $v0, 5
- syscall
- move $t7, $v0 #move to t7
- li $v0, 4
- la $a0, msg1
- syscall
- li $v0, 5
- syscall
- move $a0, $v0 #move to a0
- jal fib #call fib
- #add $a0, $zero, $zero
- add $a0, $v0, $zero
- li $v0, 1
- syscall
- li $v0, 10
- syscall
- fib:
- sub $sp, $sp, 4 #sp -12
- sw $ra, ($sp) #ra trzymamy pod sp
- add $s0, $a0, $zero #s0 = a0 czyli userinput
- addi $t1, $zero, 1 #t1 = 1
- beq $s0 $zero, return0 #jesli s0 == 0 to return0
- sub $a0, $s0, 1 # s0-- wynik do a0
- jal fib #zapętl do gory
- mul $s1, $v0, 2 #s1 = fib(y-1)
- add $s1, $s1, 1
- move $v0, $s1
- exitfib:
- lw $ra, ($sp)
- addi $sp, $sp, 4
- jr $ra
- return0:
- move $v0, $t7
- j exitfib
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement