The hardware stack on 16F is not readable nor writeable. Program memory addresses are "pushed" onto the stack in the event of a 'call' or an interrupt. They are then "popped" off of the stack and back into the program counter upon returning from a call or returning from an interrupt in the reverse order of the push (LIFO, or "Last In First Out").
I believe the stack on 18F and some enhanced 16F is read/writeable. Some 18F PIC's have a stack pointer register (STKPTR) along with top of stack registers TOSU, TOSH and TOSL. These 3 registers hold the 16-bit address in the stack at whichever stack level is being pointed to by the stack pointer.
If we're talking 8051, the stack just uses registers in RAM as the actual stack, and any/all values in the "stack" can be read if we know which RAM address the stack pointer register (SP) started with when values were "pushed" to it.
It would definitely take a bit of housekeeping in your code to pull it off but definitely possible with some uC's.