ARM体系结构CPSR-当前程序状态寄存器

CPSR有4个8位区域:

标志域(F)、状态域(S)、扩展域(X)、控制域(C)

MSR - Load specified fields of the CPSR or SPSR with an immediate constant, or from the contents of a general-purpose register.

Syntax:

MSR{cond} <psr>_<fields>, #immed_8r MSR{cond} <psr>_<fields>, Rm where: cond is an optional condition code. <psr> is either CPSR or SPSR. <fields> specifies the field or fields to be moved. <fields> can be one or more of:

c control field mask byte (PSR[7:0])

x extension field mask byte (PSR[15:8])

s status field mask byte (PSR[23:16)

f flags field mask byte (PSR[31:24]).

immed_8r is an expression evaluating to a numeric constant.

The constant must correspond to an 8-bit pattern rotated by an even number of bits within a 32-bit word. Rm is the source register.

C 控制域屏蔽字节(psr[7:0])
X 扩展域屏蔽字节(psr[15:8])
S 状态域屏蔽字节(psr[23:16])
F 标志域屏蔽字节(psr[31:24])
常用于MRS或MSR指令,用于psr中的值转移到寄存器或把寄存器的内容加载到psr中.
如:

msr cpsr_c,#0xd3 @进入管理模式

msr cpsr_c,#0xd2 @ 进入中断模式

猜你喜欢

转载自blog.csdn.net/Aguangg_6655_la/article/details/73527982