Valid data must not be stored in a stack area with an address lower than the stack pointer (in the direction of address H'0), since the data may be destroyed by an interrupt process.
In a function call (immediately after the JSR or the BSR instruction has been executed), the stack pointer indicates the lowest address of the stack used by the calling function. Allocating and setting data at addresses greater than this address must be done by the caller.
After the callee deallocates the area it has set with data, control returns to the caller usually with the RTS instruction. The caller then deallocates the area having a higher address (the return value address and the parameter area).
Figure 3.2 illustrates the stack frame status immediately after a function call.