pass parameters into procedures and return results.
reverse the order in which data is stored.
save addresses so procedures and interrupts can return to the right place.
perform postfix arithmetic.
make recursion possible.
Stack Pointer
A CPU register (SP) that keeps track of (is a pointer to) the data on the stack. It is colour coded with a blue highlight in the simulator RAM display.
Push and Pop
Push - Add data to the stack at the stack pointer position and subtract one from the stack pointer.
Pop - Add one to the stack pointer and remove data from the stack at the stack pointer position.
LIFO
Last in First out. The stack operates strictly to this rule. When data is pushed onto the stack, it must later be popped in reverse order.