ARM registers

In all ARM processors, the following registers are available and accessible in any processor mode:


  • The Link Register can also be used as a general-purpose register. The Stack Pointer can be used as a general-purpose register in ARM state only.

Additional registers are available in privileged software execution. ARM processors, with the exception of ARMv6-M and ARMv7-M based processors, have a total of 37 or 40 registers depending on whether the Security Extensions are implemented. The registers are arranged in partially overlapping banks. There is a different register bank for each processor mode. The banked registers give rapid context switching for dealing with processor exceptions and privileged operations.

The additional registers in ARM processors, with the exception of ARMv6-M and ARMv7-M, are:


  • The monitor mode registers and one of the SPSRs apply only to the monitor mode and are only present if Security Extensions are implemented.

  • In privileged software execution, CPSR is an alias for APSR and gives access to additional bits.

Figure 1 shows how the registers are banked in the ARM Architecture except ARMv6-M and ARMv7-M.

Figure 1. Organization of general-purpose registers and Program Status Registers

To view this graphic, your browser must support the SVG format. Either install a browser with native support, or install an appropriate plugin such as Adobe SVG Viewer.

In ARMv6-M and ARMv-7M based processors, SP is an alias for the two banked stack pointer registers:

Show/hideSee also

Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0473H