Datasheet

143
11011B–ATARM–21-Feb-12
SAM3N
10.18.6 MRS
Move the contents of a special register to a general-purpose register.
10.18.6.1 Syntax
MRS{cond} Rd, spec_reg
where:
cond is an optional condition code, see “Conditional execution” on page 84.
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.
10.18.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.
BASEPRI_MAX is an alias of BASEPRI when used with the MRS instruction.
See “MSR” on page 144.
10.18.6.3 Restrictions
Rd must not be SP and must not be PC.
10.18.6.4 Condition flags
This instruction does not change the flags.
10.18.6.5 Examples
MRS R0, PRIMASK ; Read PRIMASK value and write it to R0