MSR

将立即数或通用寄存器的内容加载到程序状态寄存器 (PSR) 的指定字段中。

语法(ARMv7-M 和 ARMv6-M 除外) MSR{ cond} APSR_ flags, # constant MSR{ cond} APSR_ flags, Rm MSR{ cond} psr_ fields, # constant MSR{ cond} psr_ fields, Rm

其中:

cond

是一个可选的条件代码。

flags

指定要移动的 APSR 标记。flags 可以是以下项中的一个或多个:

nzcvq

ALU 可标记字段掩码,PSR[31:27](用户模式)

g

SIMD GE 可标记字段掩码,PSR[19:16](用户模式)。

constant

是取值为常数的一个表达式。 该常数必须对应于一个 8 位结构,可通过在 32 位字内循环移动偶数位而得到。在 Thumb 中不可用。

Rm

是源寄存器。

psr

是下列项之一:

CPSR

用于调试状态,请不要将其看做 APSR 的同义词

SPSR

仅可用于特权模式下的处理器。

fields

指定要移动的 SPSR 或 CPSR 字段。fields 可以是以下项中的一个或多个:

c

控制字段掩码字节,PSR[7:0](特权模式)

x

扩展字段掩码字节,PSR[15:8](特权模式)

s

状态字段掩码字节,PSR[23:16](特权模式)

f

标记字段掩码字节,PSR[31:24](特权模式)

语法(仅用于 ARMv7-M 和 ARMv6-M) MSR{ cond} psr, Rm

其中:

cond

是一个可选的条件代码。

Rm

是源寄存器。

psr

可以是下列项之一: APSRIPSREPSRIEPSRIAPSREAPSRXPSRMSPPSPPRIMASKBASEPRIBASEPRI_MAXFAULTMASKCONTROL

用法

在用户模式中:

  • 使用 APSR 访问条件标记、Q 或 GE 位。

  • 忽略对 CPSR 中的未分配状态位、特权状态位或执行状态位的写入。 这可确保用户模式程序不会更改为 特权模式。

如果在用户或系统模式时尝试访问 SPSR,则结果将是无法预料的。

条件标记

如果指定了 APSR_nzcvqCPSR_f 字段,则此指令将会显式更新标记。

体系结构

此 ARM 指令可用于所有版本的 ARM 体系结构。

此 32 位 Thumb 指令可用于 ARMv6T2 及更高版本。

此指令无 16 位 Thumb 版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值