MRS和MSR指令

一:下面先来说说状态寄存器

ARM中有两条指令用于在状态寄存器和通用寄存器之间传送数据。
针对32位的ARM处理器,状态寄存器就是一个32位长的寄存器。每个位的含义如下图
MRS和MSR指令
MRS和MSR指令
分成了4部分:

1,条件标志位

N(Negative), Z(Zero), C(Carry), V(Verflow)统称为条件标志位。ARM指令可以根据CPSR中的这些条件标志位来选择性的执行。

2,Q标志位

ARM v5的E系列处理器中,CPSR的bit[27]称为Q标志位。主要用于指示增强的DSP指令是否发生了溢出。

3,控制位

I, F, T以及M[4:0]统称为控制位。当异常中断发生时,这些位发生变化。在特权级的处理器模式下,软件可以修改这些控制位。

下表示控制位M[4:0]的含义:

MRS和MSR指令
4,保留位
用于将来ARM版本的扩展。

二:状态寄存器访问指令仅有两条:

MRS: 状态寄存器到通用寄存器的传送指令。
MRS:({R0-R12}⬅CPSR,SPSR)
MSR: 通用寄存器到状态寄存器的传送指令。
MRS:(CPSR,SPSR⬅{R0-R12})