Advertisement
Guest User

Untitled

a guest
Feb 26th, 2015
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #f(n) = 2f(n - 1) + 3f(n - 2)+ 1
  2. #f(0) = 1
  3. #f(1) = 2
  4.  
  5. li $a0, 3 # THIS IS THE INPUT NUMBER N
  6. li $t2, 3 # this is the 3 in 3f(n-2)
  7. jal f
  8. move $a0, $v0 #move result to a0
  9. li $v0, 1 #print result
  10. syscall
  11. li $v0, 10 #end
  12. syscall
  13. # $a0 = n
  14. f:
  15. add $sp, $sp, -8 ############### RESERVE SPACE ON THE STACK
  16. sw $a0, 0($sp)
  17. sw $ra, 4($sp)
  18.  
  19. beq $a0, 0, BASECASE1 ########### DO THE THING
  20. beq $a0, 1, BASECASE2
  21. addi $a0, $a0, -1 ###### N - 1
  22. jal f
  23.  
  24. addi $sp, $sp, -4
  25. sw $v0, 0($sp) ##########store v0 on stack
  26. addi $a0, $a0, -1 ##### n - 2
  27. jal f #### f(n-2)
  28.  
  29. lw $t0, 0($sp) #load f(n-1) to t0
  30. sll $t0, $t0, 1 #multiply that by 2
  31. mult $v0, $t2 # multiply f(n-2) by 3
  32. mflo $v0 # store in v0
  33. add $v0, $v0, $t0 # add 2f(n-1) + 3f(n-2)
  34. addi $v0, $v0, 1 # ADD 1
  35. addi $sp, $sp, 4
  36. j RECURSION
  37.  
  38. BASECASE1:
  39. li $v0, 1
  40. j RECURSION
  41. BASECASE2:
  42. li $v0, 2
  43. RECURSION:
  44.  
  45. lw $ra, 4($sp) ############# RESTORE THE STACK
  46. lw $a0, 0($sp)
  47. addi $sp, $sp, 8
  48. jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement