CPSR寄存器控制着CPU的工作模式和运算状态,出于对CPSR的保护,不允许其他指令来访问CPSR寄存器。

因此,ARM提供了读写指令来操作CPSR寄存器,这两个指令是ARM特有的指令集,因为处理器之间存在一定差异,控制状态的寄存器也可能存在差异。


目录

1、读CPSR —— MRS指令

2、写CPSR —— MSR指令

(1) 指令格式

(2) MSR指令的应用场景


1、读CPSR —— MRS指令

MRS的作用是读取CPSR寄存器的内容,并搬移到其他寄存器。

指令格式:MRS  第一操作寄存器, CPSR

MRS R1, CPSR                @ 将CPSR的内容搬移到了R1寄存器 (R1 = CPSR)

2、写CPSR —— MSR指令

(1) 指令格式

MSR指令的作用是更改CPSR寄存器的内容。

指令格式:MSR  CPSR, 第一操作数

MSR CPSR, #0x10        @ CPU的模式改为User模式,同时开启FIQ、IRQ
MSR CPSR, #0xD3       @ 该条不会生效 

注意:第二条MSR指令不会生效,User模式比其他模式的权限都要低,出于对CPSR的保护,避免上层应用程序随意修改CPSR,切换到User模式后,无法修改CPSR寄存器。

(2) MSR指令的应用场景

这个指令一般是系统内部调用比较多。应用场景主要有两种:

a. CPU刚上电的时候

刚上电时处于SVC模式,当一切准备就绪以后,需要切换到User模式来执行应用程序,这时就会在系统内部调用这个指令。

b. 执行系统调用的时候

执行系统调用的时候,要从用户态切换到内核态,CPU的工作模式会由User模式切换到SVC模式,系统调用执行完毕返回用户态的时候,会再一次执行该指令切换到User模式。

状态寄存器传送指令 —— 访问(读写)CPSR寄存器相关推荐

  1. 访问CP15寄存器的指令

    4.1.1  访问CP15寄存器的指令 访问CP15寄存器指令的编码格式及语法说明如下: 31  28 27  24 23  21 20 19  16 15  12 11  8 7  5 4 3  0 ...

  2. 第三章 寄存器(内存访问)

    学号:20171308150 姓名:江漪雯 班级:17计科4班 一. 内存中字的存储 1. 8086CPU中,用16位寄存器来存储一个字.高8位存放高位字节,低8位存放低位字节. 2. 在内存中存储时 ...

  3. ART世界探险(4) - 数据传送指令和桶型移位器

    ART世界探险(4) - 数据传送指令和桶型移位器 数据传送指令 将数在寄存器之间传递,或者将立即数传给寄存器.所谓的立即数,就是直接写在指令里的数,比如MOV X0,100,这个100就是立即数.立 ...

  4. 微机原理学习笔记——寻址方式和传送指令(MOV)

    目录 操作数的寻址方式 立即数寻址方式 寄存器寻址方式 存储器寻址方式 段超越前缀指令 直接寻址方式 寄存器间接寻址方式 寄存器相对寻址方式 基址变址寻址方式 相对基址变址寻址方式 存储器寻址方式中的 ...

  5. 微机原理笔记——数据传送指令

    数据传送指令 通用数据传送指令 传送指令MOV 格式 MOV DST,SRC 功能 将一个源操作数送到目的操作数 说明 1.DST是目的操作数,可以是寄存器,存储器,累加器 SRC是源操作数,可以是寄 ...

  6. 8086到80386汇编数据传送指令的扩展

    80386及以上汇编的数据传送指令如下: MOV     传送字或字节.   MOVSX   先符号扩展,再传送.   MOVZX   先零扩展,再传送.   PUSH    把字压入堆栈.   PO ...

  7. 汇编指令:MRS(读)和MSR(写)指令操作CPSR寄存器和SPSR寄存器使用

    1.MSR和MRS指令介绍 MRS 指令: 对状态寄存器CPSR和SPSR进行读操作.通过读CPSR可以获得当前处理器的工作状态.读SPSR寄存器可以获得进入异常前的处理器状态(因为只有异常模式下有S ...

  8. 汇编指令-MRS(读)和MSR(写)指令操作CPSR寄存器和SPSR寄存器使用(1)

    1.MSR和MRS指令介绍 MRS 指令:  对状态寄存器CPSR和SPSR进行读操作.通过读CPSR可以获得当前处理器的工作状态.读SPSR寄存器可以获得进入异常前的处理器状态(因为只有异常模式下有 ...

  9. 汇编之寄存器(内存访问)之字与字节的传送

    文章目录 内存中字的存储 DS和[address] 字的传送 操作符X ptr 俗话说的好,温故而知新! 内存中字的存储 8086CPU中,用16位寄存器来存储一个字.高8位存放高位字节,低8位存放低 ...

最新文章

  1. python3语法、菜鸟教程_Python3
  2. java 字节数组 操作_Java-固定字节数组对象
  3. 通信大数据应用未来还有很大的想象空间
  4. java 内部类 线程_java多线程基本概述(十四)——Thread内部类的几种写法
  5. cuda 5.0配置vs2008+Visual Assist X +安装问题解决
  6. 周鸿祎评互联网大佬编程能力:自己可以排前三!是谁排第一?
  7. 使用JWT的ASP.NET CORE令牌身份验证和授权(无Cookie)——第2部分
  8. 【Android】两种动画介绍(Tween动画、Frame动画)
  9. linux c 获取硬盘使用率,Linux通过c得到硬盘使用情况
  10. Repository HDU - 2846 (trie)
  11. 【论文笔记】From Facial Parts Responses to Face Detection: A Deep Learning Approach
  12. 机器学习 --- 4. 大内密探HMM(隐马尔可夫)围捕赌场老千(转)
  13. RK px30 配置ap6212 wifi bt流程记录
  14. 【多线程与高并发】这可能是最全的多线程面试题了
  15. 自定义CardView
  16. 笔记本Windows7无法连接上家庭wifi,急急急!!!
  17. Android.Oldboot.1,腾讯手机管家发布全球首款可根除Oldboot病毒专杀
  18. 十二属相配对与最佳配偶
  19. 大龄码农的新西兰移民之路
  20. python读取excel日期小数_RPA-使用Python读取Excel日期结果为数字时的转换处理方法...

热门文章

  1. 360与腾讯qq的战争
  2. 风华是一指流砂,苍老了一段过往年华
  3. 2021年中国银行间同业拆借成交额及加权平均利率分析:成交额、同业拆借及质押式回购加权平均利率均呈增长趋势[图]
  4. 阿里云数据库MongoDB版助力吉比特《一念逍遥》游戏斩获千万玩家,运营效率成倍增长
  5. Java8 IF ELSE IF 优化
  6. 饥饿营销:如果世界末日来临,你愿意为我抢一件优衣库kwas联名款吗?
  7. instanceclient安装与配置
  8. 学习表——受任于败军之际,奉命于危难之间(11.28-12.4)
  9. 设计模式系列·王小二需求历险记(二)
  10. 关于组织 2021年全国大学生数学建模竞赛的通知