Samsung S3C2440A User Manual
Page 78

S3C2440A RISC MICROPROCESSOR
ARM INSTRUCTION SET
3-21
ASSEMBLY SYNTAX
••••
MRS - transfer PSR contents to a register
MRS{cond} Rd,<psr>
••••
MSR - transfer register contents to PSR
MSR{cond} <psr>,Rm
••••
MSR - transfer register contents to PSR flag bits only
MSR{cond} <psrf>,Rm
The most significant four bits of the register contents are written to the N,Z,C & V flags respectively.
••••
MSR - transfer immediate value to PSR flag bits only
MSR{cond} <psrf>,<#expression>
The expression should symbolise a 32 bit value of which the most significant four bits are written to the N,Z,C and
V flags respectively.
Key:
{cond}
Two-character condition mnemonic. See Table 3-2..
Rd and Rm
Expressions evaluating to a register number other than R15
<psr>
CPSR, CPSR_all, SPSR or SPSR_all. (CPSR and CPSR_all are synonyms as are SPSR
and
SPSR_all)
<psrf>
CPSR_flg
or
SPSR_flg
<#expression>
Where this is used, the assembler will attempt to generate a shifted immediate 8-bit field
to match the expression. If this is impossible, it will give an error.
EXAMPLES
In User mode the instructions behave as follows:
MSR
CPSR_all,Rm
; CPSR[31:28] <- Rm[31:28]
MSR
CPSR_flg,Rm
; CPSR[31:28] <- Rm[31:28]
MSR
CPSR_flg,#0xA0000000
; CPSR[31:28] <- 0xA (set N,C; clear Z,V)
MRS
Rd,CPSR
; Rd[31:0] <- CPSR[31:0]
In privileged modes the instructions behave as follows:
MSR
CPSR_all,Rm
; CPSR[31:0] <- Rm[31:0]
MSR
CPSR_flg,Rm
; CPSR[31:28] <- Rm[31:28]
MSR
CPSR_flg,#0x50000000
; CPSR[31:28] <- 0x5 (set Z,V; clear N,C)
MSR
SPSR_all,Rm ;
SPSR_<mode>[31:0]<-
Rm[31:0]
MSR
SPSR_flg,Rm
; SPSR_<mode>[31:28] <- Rm[31:28]
MSR
SPSR_flg,#0xC0000000
; SPSR_<mode>[31:28] <- 0xC (set N,Z; clear C,V)
MRS
Rd,SPSR
; Rd[31:0] <- SPSR_<mode>[31:0]