Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;-------------------
- ;Instructions
- ;-------------------
- LD R1, STACK_ADDR
- ADD R2, R1, #0
- LD R3, CAPACITY
- LD R6, SUB_STACK_PUSH
- LEA R0, PUSH_PROMPT_MAIN
- PUTS
- PUSH_LOOP_MAIN
- GETC
- OUT
- ADD R0, R0, #-10
- BRz END_PUSH_LOOP_MAIN
- ADD R0, R0, #10
- JSRR R6
- BR PUSH_LOOP_MAIN
- END_PUSH_LOOP_MAIN
- LD R6, SUB_STACK_POP
- LEA R0, POP_PROMPT_MAIN
- PUTS
- POP_LOOP_MAIN
- GETC
- ADD R0, R0, #-10
- BRz END_POP_LOOP_MAIN
- ADD R0, R0, #10
- JSRR R6
- LEA R0, CHAR_POPPED
- PUTS
- BR POP_LOOP_MAIN
- END_POP_LOOP_MAIN
- HALT
- ;-------------------
- ;Local Data
- ;-------------------
- SUB_STACK_PUSH .FILL x3200
- SUB_STACK_POP .FILL x3400
- STACK_ADDR .FILL x5000
- CAPACITY .FILL #10
- PUSH_PROMPT_MAIN .STRINGZ "Enter a character to push onto the stack (ENTER to stop):\n"
- POP_PROMPT_MAIN .STRINGZ "Press any key to pop from back (ENTER to stop):\n"
- CHAR_POPPED .STRINGZ "Popped!\n"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement