Calling sequence:
1. Push function address 2. Execute CALL → Saves (PC+1, SP) to call stack → Jumps to function
Return sequence:
1. Execute RET → Restores PC and SP → Trims stack to SP position → If call stack empty: program terminates
Stack frame layout:
┌──────────────────┐ │ Caller frame │ ├──────────────────┤ ← SP │ Local function │ ← Stack top └──────────────────┘