奚梦瑶维秘摔倒图片:2.4.4 程序状态寄存器访问指令

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 12:02:53

2.4.4  程序状态寄存器访问指令

ARM微处理器支持程序状态寄存器访问指令,用于在程序状态寄存器和通用寄存器之间传送数据,程序状态寄存器访问指令包括以下两条。

MRS:程序状态寄存器到通用寄存器的数据传送指令。

MSR:通用寄存器到程序状态寄存器的数据传送指令。

1. MRS指令

MRS指令的格式为:

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

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

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

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

指令示例:

  1. MRS R0, CPSR    ;传送CPSR 的内容到R0  
  2. MRS R0, SPSR    ;传送SPSR 的内容到R0  

2. MSR指令

MSR指令的格式为:

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

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

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

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

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

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

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

指令示例:

  1. MSR CPSR, R0        ;传送R0 的内容到CPSR  
  2. MSR SPSR, R0        ;传送R0 的内容到SPSR  
  3. MSR CPSR_c, R0      ;传送R0 的内容到CPSR, 但仅仅修改CPSR 中的控制位域 
程序状态字寄存器中的特征位通常包括 8086 的复位信号是什么? 有效电平是什么 ?CPU 复位后,寄存器和指令队列处于什么状态 ? 有效电平是什么 ? 8086状态寄存器PF位意义? 若(SP)=2000H,(AX)=3355H,(BX)=4466H,试指出下列指令或程序段执行后有关寄存器的内容。 若要检测AL寄存器第0,2,4位是否都为0可以使用 _____指令 如何看到自己电脑里的缓冲区和寄存器等的工作状态,要调试它们用什么系统里自带的程序可以 急急急、!指令寄存器属于运算器还是控制器呢? 四位寄存器的VHDL程序 Cache访问速度快还是寄存器速度快 瑞星个人防火墙访问规则那里的各个程序的状态怎么改变? 下列程序段运行后,BX寄存器中的内容是什么? 用来存放即将执行的指令的偏移地址的寄存器是: 执行下列指令后,寄存器AX中的内容为多少?怎么算啊 cpu中寄存器地址编码增加也会对增加指令的长度 在arm单片机中,cpsr寄存器中哪些位用来定义处理器状态 单片机程序指令是哪些? 单片机指令程序分为什么 阻止程序访问网络 程序访问错误? 选择程序 禁止访问 关于博客计数器的问题,能不能在不打开博客页面的前提下通过指令或程序读取该博客的访问计数器值 请问在单总线CPU结构中,执行读存储器数据到寄存器的指令load ri,mem的过程. 程序段前缀psp与寄存器cs.ds.es.ss之间的关系 为什么汇编编译器不识别程序中的一些命令和特殊寄存器?