新闻中心

EEPW首页>嵌入式系统>设计应用> ARM汇编指令集之六——程序状态寄存器访问指令

ARM汇编指令集之六——程序状态寄存器访问指令

作者: 时间:2016-11-09 来源:网络 收藏
1、 MRS指令

MRS指令的格式为:

本文引用地址://m.amcfsurvey.com/article/201611/317602.htm

MRS{条件}通用寄存器,程序状态寄存器(CPSR或SPSR)

MRS指令用于将程序状态寄存器的内容传送到通用寄存器中。该指令一般用在以下两种情况:

Ⅰ.当需要改变程序状态寄存器的内容时,可用MRS将程序状态寄存器的内容读入通用寄存器,修改后再写回程序状态寄存器。

Ⅱ.当在异常处理或进程切换时,需要保存程序状态寄存器的值,可先用该指令读出程序状态寄存器的值,然后保存。

指令示例:

MRS R0,CPSR;传送CPSR的内容到R0

MRS R0,SPSR;传送SPSR的内容到R0

2、 MSR指令

MSR指令的格式为:

MSR{条件}程序状态寄存器(CPSR或SPSR)_ <域> ,操作数

MSR指令用于将操作数的内容传送到程序状态寄存器的特定域中。其中,操作数可以为通用寄存器或立即数。 <域> 用于设置程序状态寄存器中需要操作的位,32位的程序状态寄存器可分为4个域:

位[31:24]为条件标志位域,用f表示;

位[23:16]为状态位域,用s表示;

位[15:8]为扩展位域,用x表示;

位[7:0]为控制位域,用c表示;

该指令通常用于恢复或改变程序状态寄存器的内容,在使用时,一般要在MSR指令中指明将要操作的域。

指令示例:

MSR CPSR,R0;传送R0的内容到CPSR

MSR SPSR,R0 ;传送R0的内容到SPSR

MSR CPSR_c,R0;传送R0的内容到SPSR,但仅仅修改CPSR中的控制位域


评论


技术专区

关闭