1、 MRS指令
MRS指令的格局为:
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中的操控位域