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