2.16 Current Program Status Register

The Current Program Status Register (CPSR) holds the same program status flags as the APSR, and some additional information.

The CPSR holds:
  • The APSR flags.
  • The processor mode.
  • The interrupt disable flags.
  • The instruction set state (ARM, Thumb, ThumbEE, or Jazelle®).
  • The endianness state (on ARMv4T and later).
  • The execution state bits for the IT block (on ARMv6T2 and later).
The execution state bits control conditional execution in the IT block.
Only the APSR flags are accessible in all modes. ARM deprecates using an MSR instruction to change the endianness bit (E) of the CPSR, in any mode. SETEND is the preferred instruction to write to the E bit.
The execution state bits for the IT block (IT[1:0]), Jazelle bit (J), and Thumb bit (T) can be accessed by MRS only in Debug state.


The CSPR is not present in ARMv6-M and ARMv7-M processors.
Related concepts
5.4 Updates to the condition flags
2.17 Saved Program Status Registers
Related reference
10.39 IT
10.60 MRS (PSR to general-purpose register)
10.63 MSR (general-purpose register to PSR)
10.100 SETEND
Non-ConfidentialPDF file icon PDF versionARM DUI0379G
Copyright © 2007, 2008, 2011, 2012, 2014, 2015 ARM. All rights reserved.