15.2 Call Frame

The stack is a memory region that grows dynamically at runtime. It starts at high address and grows to lower address (stack grows downward).

The stack has call frames, each one containing data corresponding to an active function call.

Figure 15-1. Call Frame Diagram

A call frame contains:

  • return address
  • callee saved registers
  • parameters passed through stack
  • local variables
  • temporary variables (inserted by compiler)
  • interrupt context