UM10360 All information provided in this document is subject to legal disclaimers. © NXP B.V. 2013. All rights reserved.
User manual Rev. 3 — 20 December 2013  721 of 841
NXP Semiconductors
UM10360
Chapter 34: Appendix: Cortex-M3 user guide
34.2.10.6 MRS
Move the contents of a special register to a general-purpose register.
34.2.10.6.1 Syntax
MRS
{cond} Rd, spec_reg
where:
cond is an optional condition code, see Section 34.2.3.7 “
Conditional execution”.
Rd is the destination register.
spec_reg can be any of: 
APSR
, 
IPSR
, 
EPSR
, 
IEPSR
, 
IAPSR
, 
EAPSR
, 
PSR
, 
MSP
, 
PSP
, 
PRIMASK
, 
BASEPRI
, 
BASEPRI_MAX
, 
FAULTMASK
, or 
CONTROL
.
34.2.10.6.2 Operation
Use 
MRS
 in combination with 
MSR
 as part of a read-modify-write sequence for updating a 
PSR, for example to clear the Q flag.
In process swap code, the programmers model state of the process being swapped out 
must be saved, including relevant PSR contents. Similarly, the state of the process being 
swapped in must also be restored. These operations use 
MRS
 in the state-saving 
instruction sequence and 
MSR
 in the state-restoring instruction sequence.
Remark: 
BASEPRI_MAX
 is an alias of 
BASEPRI
 when used with the 
MRS
 instruction.
See Section 34.2.10.7
.
34.2.10.6.3 Restrictions
Rd must not be SP and must not be PC.
34.2.10.6.4 Condition flags
This instruction does not change the flags.
34.2.10.6.5 Examples
MRS R0, PRIMASK ; Read PRIMASK value and write it to R0