In any ARM processor, total 16 registers are accessible in any operation Mode. Those registers are as shown in following image,
- 13 general-purpose registers R0-R12
- 1 Stack Pointer (SP)
- 1 Link Register (LR)
- 1 Program Counter (PC)
- 1 Application Program Status Register (APSR)’
The meaning and purpose of this ARM registers is as below,
- R0 to R12 – The initial 13 registers are called general purpose registers and those can used to save any data or address.
- R13 – is used as the stack pointer (sp) and it stores the head of the stack memory in the current processor.
- R14 – is called as the link register (lr). In R14 register processor puts the return address whenever it calls a function.
- R15 – is called as program counter (pc) and it contains the address of the next instruction to be fetched / executed by the processor.
Refer information from http://www.cecmohali.org/resource-material/notes/Notes-2.pdf for more understanding.