m Memory used to pass parameters to procedures (including C function calls)
m Memory used for allocating space for local variables
m Save return address in procedure calls
m Save registers to be preserved across procedure calls
Passing Parameters to Procedures
Procedure Calls (Steps Recap)
n Save registers that are needed (for C functions save EAX, ECX, EDX)
n Push arguments, last first
n Save caller's EBP and set up callee stack frame (ENTER macro)
n Allocate space for local variables and temporary storage
n Save registers as needed (C functions save EBX, ESI, EDI)
n Store return value in EAX
n Restore registers (C functions restore EBX, ESI, EDI)
n Restore caller's stack frame (LEAVE macro)
n POP arguments, get return value in EAX, restore registers (for C EAX, ECX, EDX)