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 722 of 841
NXP Semiconductors
UM10360
Chapter 34: Appendix: Cortex-M3 user guide
34.2.10.7 MSR
Move the contents of a general-purpose register into the specified special register.
34.2.10.7.1 Syntax
MSR
{cond} spec_reg, Rn
where:
cond is an optional condition code, see Section 34.2.3.7 “
Conditional execution”.
Rn is the source 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.7.2 Operation
The register access operation in
MSR
depends on the privilege level. Unprivileged software
can only access the
APSR
, see Table 628 “APSR bit assignments”. Privileged software can
access all special registers.
In unprivileged software writes to unallocated or execution state bits in the
PSR
are
ignored.
Note
When you write to
BASEPRI_MAX
, the instruction writes to
BASEPRI
only if either:
• Rn is non-zero and the current
BASEPRI
value is 0
• Rn is non-zero and less than the current
BASEPRI
value.
See Section 34.2.10.6
.
34.2.10.7.3 Restrictions
Rn must not be SP and must not be PC.
34.2.10.7.4 Condition flags
This instruction updates the flags explicitly based on the value in Rn.
34.2.10.7.5 Examples
MSR CONTROL, R1 ; Read R1 value and write it to the CONTROL register