assembler assembler directives First/Second Pass linker library compiler object file pseudo ops labels symbol table abstract data types data structure stack queue LIFO FIFO JSR push pop location of stack in memory (between x3000 and xFE00) stack overflow, underflow 0, 2 address machine subroutine JSR/JSRR JMP RET saving registers caller save callee save R5 - holds success/fail of pop R6 - stack pointer R7 - return linkage linked list stack using a linked list node item adding elements to sorted list linked list vs sequential storage binary search queue front and back pointers wrapping around tree insertion into linked list accessing array binary search tradeoffs recursion row-major array memory mapped i/o input/output KBDR (Keyboard Data Register) DDR (Display Data Register) KBSR (Keyboard Status Register) DSR (Display Data Register) Ready bit echo .STRINGZ location counter polling address control logic