Advertisement
Guest User

Untitled

a guest
May 28th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .data
  2.     msg1: .asciiz "Give n: "
  3.     msg2: .asciiz "give me a0: "
  4. .text
  5.  
  6. main:
  7.     li $v0, 4
  8.     la $a0, msg2
  9.     syscall
  10.    
  11.     li $v0, 5
  12.     syscall
  13.     move $t7, $v0       #move to t7
  14.    
  15.     li $v0, 4
  16.     la $a0, msg1
  17.     syscall
  18.    
  19.     li $v0, 5
  20.     syscall
  21.     move $a0, $v0       #move to a0
  22.    
  23.     jal fib             #call fib
  24.     #add $a0, $zero, $zero
  25.     add $a0, $v0, $zero
  26.     li $v0, 1
  27.     syscall
  28.    
  29.     li $v0, 10
  30.     syscall
  31.    
  32. fib:
  33.     sub $sp, $sp, 4     #sp -12
  34.     sw $ra, ($sp)           #ra trzymamy pod sp
  35.     add $s0, $a0, $zero     #s0 = a0 czyli userinput
  36.    
  37.     addi $t1, $zero, 1      #t1 = 1
  38.     beq $s0 $zero, return0      #jesli s0 == 0 to return0
  39.    
  40.     sub $a0, $s0, 1         # s0-- wynik do a0
  41.    
  42.     jal fib             #zapętl do gory
  43.    
  44.     mul $s1, $v0, 2     #s1 = fib(y-1)
  45.     add $s1, $s1, 1
  46.     move $v0, $s1
  47.    
  48. exitfib:
  49.     lw $ra, ($sp)
  50.     addi $sp, $sp, 4
  51.     jr $ra
  52.    
  53. return0:
  54.     move $v0, $t7
  55.     j exitfib
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement