The stack is
a temporary store for data.
The cpu may PUSH
important data onto the stack, while it is processing other data.
When it finishes
that task, it PULLS the saved data off the stack.
Its like a pile
of plates.
The bottom plate
is the first bit of data that was pushed onto the stack.
The top plate
is the last data to be pushed.
The top plate
is pulled first and the bottom plate is the last data to be pulled.
It is a LAST
IN, FIRST OUT stack.
In the diagrams,
X is the first to be pushed, then Y and lastly A.
The cpu goes
away to process other data.
Upon completion
of that task it returns to pull the saved data.
First A is pulled,
then Y and lastly X.
The instruction
for pushing data is PHA.
Only data in
the accumulator can be pushed onto the stack.
Other data can
be pushed if it is transferred to the accumulator first.
The instruction
for pulling data from the stack is PLA.
Data on the
stack is transferred to the accumulator.
The 6502 stack
consists of 256 bytes and occupies page 1, addresses 256 to 511.
|