11_ARM汇编自学笔记指令系统之程序状态寄存器访问指令
来源:互联网 发布:视频下载软件 vd 编辑:程序博客网 时间:2024/05/16 04:48
程序状态寄存器访问指令
ARM 微处理器支持程序状态寄存器访问指令,用于在程序状态寄存器和通用寄存器之间传送数据,程序状态寄存器访问指令包括以下两条:
— MRS 程序状态寄存器到通用寄存器的数据传送指令
— MSR 通用寄存器到程序状态寄存器的数据传送指令
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 中的控制位域
- 11_ARM汇编自学笔记指令系统之程序状态寄存器访问指令
- 05_ARM汇编自学笔记模型之程序状态寄存器
- 08_ARM汇编自学笔记指令系统之跳转指令
- 09_ARM汇编自学笔记指令系统之数据处理指令
- 12_ARM汇编自学笔记指令系统之加载存储指令
- 14_ARM汇编自学笔记指令系统之数据交换指令
- 16_ARM汇编自学笔记指令系统之协处理器指令
- 17_ARM汇编自学笔记指令系统之异常产生指令
- 10_ARM汇编自学笔记指令系统之乘法指令与乘加指令
- 13_ARM汇编自学笔记指令系统之批量数据加载存储指令
- 15_ARM汇编自学笔记指令系统之移位指令(操作)
- 06_ARM汇编自学笔记指令系统之分类与格式
- 07_ARM汇编自学笔记指令系统之寻址方式
- 04_ARM汇编自学笔记模型之ARM 状态下的寄存器组织
- 01_ARM汇编自学笔记之介绍
- 18_ARM汇编自学笔记程序设计之符号定义&数据定义伪指令
- 02_ARM汇编自学笔记模型之ARM微处理器的工作状态
- 19_ARM汇编自学笔记程序设计之汇编控制
- XCode9新功能官方文档翻译
- 最全最强SpringMVC详细示例实战教程
- 解决CentOS7 无法启动mysql 的解决办法
- Something Interesting
- EXT4 之superblock 结构体剖析
- 11_ARM汇编自学笔记指令系统之程序状态寄存器访问指令
- 物理DG常用维护
- 最新PADS中电源符号的更换方法
- 初入C++(一) c++中的一些基础和与c的一些区别
- Two Sum
- 1.struts2的工作流程
- bugku ctf 听首音乐 wirteup
- LeetCode之Find Minimum in Rotated Sorted Array II
- 码云平台和git的使用帮助