While tepples' concern (that you're doing something unnecessarily complicated) is valid, it also seems to me like you don't really understand how the stack works (and forgive me if you do and I'm just misunderstanding you!), so let's tackle that.
First of all, the stack register S on the 6502 is technically 8-bit, not 16-bit. It points to an address in memory, but that address is always in the "one-page", addresses $0100 to $01FF. If S contains, say, $E0, then the "top of the stack" is at memory address $01E0.
When you push something on the stack, that means that you're writing something to the memory address pointed to by S. So suppose A contains, I dunno, $88, and S as above is $E0. Again, in this case the top of the stack is $01E0. If you do PHA (PusH Accumulator), what happens is:
- The value of A, $88, gets written to the top of the stack, $01E0
- S gets decremented to $DF, so the top of the stack is now at $01DF
This is what makes the stack useful - as long as you're careful to use it properly and never overflow it, it always provides you with a safe place to temporarily keep stuff in memory.
Similarly, if you then used PLA (PuL Accumulator), what would happen is the opposite:
- S gets incremented to $E0, so the top of the stack is now at $01DF
- The value at the top of the stack, $88, gets read into A
Now, as an exercise, think about what might happen if you don't properly match each push with a corresponding pull. That's what I mean by "use it properly".