ARM Cortex-M33 Regs ARM Architecture & Registers Key Registers r0 Arg 1 / Return r1 Arg 2 r2 Arg 3 r3 Arg 4 r0-r3 Caller-saved r4-r11 Callee-saved SP (r13) Stack Ptr LR (r14) Return Addr PC (r15) Next Instr xPSR Status Flags Function Call Flow main() BL func() BX LR How It Works r0 = first argument puts(r0) passes the string address in r0 LR saves return addr BL: PC+4 stored in LR BX LR: jump back All registers: 32 bits wide