ARM汇编指令—CPSR访问指令(mrs&msr)

一、简介

CPSR寄存器比较特殊,需要专门的指令访问,这就是mrs和msr。

mrs用来读psr(cpsr或者spsr),msr用来写psr
NOTE:
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

猜你喜欢

转载自blog.csdn.net/wwwlyj123321/article/details/80793309