A stack is like a stack of trays in a cafeteria. You can only put one on the top or take one off the top. You cant touch any in the middle or on the bottom.
If Norman is executing subroutine R and the instruction
at mailbox number 37 tells him to call
subroutine S at mailbox 82, he writes 37 on a tray and puts (or pushes) it on the stack.
This tray is called a return pointer. Then he can jump to mailbox 82.
Then the instruction in mailbox 83 tells him to call
subroutine T at mailbox 112 so he writes
83 on a tray and puts (pushes) it on a stack.
When subroutine T is finished he grabs the tray off top
of the stack (or pops it), sees the 83 written on it, and knows where to
resume (84).
When S is finished he pops another tray, sees the 37,
and can resume where he left off with R
(at 38).