<P> The prologue will commonly save the return address left in a register by the call instruction by pushing the value onto the call stack . Similarly, the current stack pointer and / or frame pointer values may be pushed . Alternatively, some instruction set architectures automatically provide comparable functionality as part of the action of the call instruction itself, and in such an environment the prologue need not do this . </P> <P> If frame pointers are being used, the prologue will typically set the new value of the frame pointer register from the stack pointer . Space on the stack for local variables can then be allocated by incrementally changing the stack pointer . </P> <P> The Forth programming language allows explicit winding of the call stack (called there the "return stack"). </P> <P> When a subroutine is ready to return, it executes an epilogue that undoes the steps of the prologue . This will typically restore saved register values (such as the frame pointer value) from the stack frame, pop the entire stack frame off the stack by changing the stack pointer value, and finally branch to the instruction at the return address . Under many calling conventions the items popped off the stack by the epilogue include the original argument values, in which case there usually are no further stack manipulations that need to be done by the caller . With some calling conventions, however, it is the caller's responsibility to remove the arguments from the stack after the return . </P>

When using procedures in assembly what is used to support this call