Advertisement
Guest User

Untitled

a guest
Sep 26th, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. 0 setn r10 100 # Initialize stack pointer
  2. 1 read r2 # Get N
  3. 2 calln r9 5 # Recursive function finds N!
  4. 3 write r1 # Write result
  5. 4 halt
  6. # Function to compute N! recursively . N is in r2 . N! is in r1 .
  7. 5 jeqzn r2 18 # Test for base case (0!)
  8. 6 addn r10 1 # Save precious possessions
  9. 7 storer r2 r10 # ...
  10. 8 addn r15 1 # ...
  11. 9 storer r9 r10 # ...
  12. 10 addn r2 -1 # Calculate N - 1
  13. 11 calln r9 5 # Call ourselves recursively to get (N - 1)!
  14. 12 loadr r9 r10 # Recover precious possessions
  15. 13 addn r15 -1 # ...
  16. 14 loadr r2 r10 # ...
  17. 15 addn r10 -1 # ...
  18. 16 mul r1 r1 r2 # (N - 1)! times N
  19. 17 jumpr r9 # Return to caller
  20. # Base case : 0! is always 1
  21. 18 setn r1 1
  22. 19 jumpr r9 # Return to caller
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement