The STM32 Cortex-M4 instruction set
3.11.7
MSR
Move the contents of a general-purpose register into the specified special register.
Syntax
MSR{cond} spec_reg, Rn
Where:
•
'cond' is an optional condition code, see
•
'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.
Operation
The register access operation in MSR depends on the privilege level. Unprivileged software
can only access the APSR, see
software can access all special registers.
In unprivileged software writes to unallocated or execution state bits in the PSR are ignored.
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
MRS on page
Restrictions
Rn must not be SP and must not be PC.
Condition flags
This instruction updates the flags explicitly based on the value in Rn.
Examples
MSR
CONTROL, R1 ; Read R1 value and write it to the CONTROL register
186/260
Table 4: APSR bit definitions on page
185.
DocID022708 Rev 6
Conditional execution on page
PM0214
64.
20. Privileged
Need help?
Do you have a question about the STM32F4 Series and is the answer not in the manual?
Questions and answers