The Central Processor

Two Instruction Sets

CPU Registers

Registers Usage
R0-R3 Used for passing parameters to functions. Any parameter that don’t fit here gets passed on the stack
R4-R10 Used for register variables. Registers 9 and 10 are also used for stack manipulation
R11 Called the frame pointer. It’s tipically set and restored during the prologue or epilogue code, since it’s the pointer through all local variables are accessed
R12 Called the interlink pointer. A scratch register for most GBA code.
R13 The Stack pointer, points to the last item pushed on the stack.
R14 The link register. It holds the return address for the subroutine. Normally it’s pushed to the stack and then popped directly into the program counter for the return.
R15 The program counter. We can directly change it to execute a jump

Go back