Stack in Action Runtime Stack Analysis Before Call 0x20082000 SP here empty (0x20081FFC) empty (0x20081FF8) free stack space unused lower space 0x20080000 Grows DOWN After PUSH 0x20082000 PUSH {r4, lr} saved LR saved r4 free stack space free stack space SP now = 0x20081FF8 SP moved down by 8 bytes GDB: x/4xw $sp saved regs are now visible Key Points PUSH saves Preserves regs before function body runs POP restores Puts values back when func returns Watch in GDB x/4xw $sp See stack data stepi Step 1 instr watch stack change live