一、简介
CPSR寄存器比较特殊,需要专门的指令访问,这就是mrs和msr。
mrs用来读psr(cpsr或者spsr),msr用来写psrNOTE:
cpsr和spsr的区别和联系:cpsr是程序状态寄存器,整个SoC中只有1个;而spsr有5个,分别在5种异常模式下,作用是当从普通模式进入异常模式时,用来保存之前普通模式下的cpsr的,以在返回普通模式时恢复原来的cpsr。
二、mrs
功能:将状态寄存器的内容传送至通用寄存器。(读psr)
例:MRS R0,CRSR ;将CPSR中的内容传送至R0
MRS R3,SPSR ;将SPSR中的内容传送至R3
三、msr
功能:(写psr)
MSR{<条件码>CPSR_<field>|SPSR_<field>,Rm
其中:
<field>字段可以是以下之一或多种:(位从右到左)
C:控制域屏蔽字段(PSR中的第0位到第7位);
X:扩展域屏蔽字段(PSR中的第8位到第15位);
S:状态域屏蔽字段(PSR中的第16位到第32位);
F:标志域屏蔽字段(PSR中的第24位到第31位)。

例1:设置N、Z、C、V标志。
MSR CPSR_f,#&f0000000 ;仅高位有效,其他必须为0
参考文献:
1.朱老师课堂笔记
2.http://blog.sina.com.cn/s/blog_6ac051b2010123cz.html