177
SAM4CP [DATASHEET]
43051E–ATPL–08/14
Restrictions
Rd
must not be SP and must not be PC.
Condition Flags
This instruction does not change the flags.
Examples
MRS R0, PRIMASK ; Read PRIMASK value and write it to R0
12.6.12.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
“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.
Operation
The register access operation in MSR depends on the privilege level. Unprivileged software can only access the APSR.
See
“Application Program Status Register”
. Privileged software can access all special registers.
In unprivileged software writes to unallocated or execution state bits in the PSR are ignored.
Note:
When the user writes 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”
.
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
12.6.12.8 NOP
No Operation.
Syntax
NOP{
cond
}
where:
cond
is an optional condition code, see
“Conditional Execution”
.
Operation
NOP does nothing. NOP is not necessarily a time-consuming NOP. The processor might remove it from the pipeline
before it reaches the execution stage.
Use NOP for padding, for example to place the following instruction on a 64-bit boundary.
Condition Flags
This instruction does not change the flags.
Examples
NOP ; No operation