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