-
Then stack space is allocated for the called procedure's
local variables, the address of a local variable is relative
to the link register
All the information that has been put on the stack is
called the activation record or stack frame for the
procedure - this activation record must be constructed
each time a procedure is called
When the procedure is ready to return all the above
operations must be reversed
The return value of the procedure is placed in a
register, the calling procedure can retrieve this value
from the register after the return is complete
The link register and the stack pointer are then
restored to their previous values and an rts is executed
Nested procedure calls and recursive procedure calls
cause the stack to grow towards the data segment - if
you have an infinite recursion the stack will continue to
grow until it reaches the data segment --at that point
your program will be terminated with a segmentation
error and a core dump
|
![](imgs/spacer.gif) |