ARM 寄存器 和 工作模式了解

news/2024/7/2 22:29:44

一. ARM 工作模式

 

1.   ARM7,ARM9,ARM11,处理器有 7 种工作模式;Cortex-A 多了一个监视模式(Monitor

2.  用户模式:非特权模式,大部分任务执行在这种模式,它运行在操作系统的用户态,没有权限操作其他硬件资源,只能执行处理自己的数据,也不能切换到其他模式下

3.  快速中断模式 : 当一个高优先级(fast) 中断产生时将会进入这种模式

4.  普通中断模式 : 当一个低优先级(normal) 中断产生时将会进入这种模式

5.  管理模式(SVC) :当复位或软中断指令执行时将会进入这种模式

6.  中止模式 : 当存取异常时将会进入这种模式 Undef : 当执行未定义指令时会进入这种模式

7.  系统模式 : 使用和User模式相同寄存器集的特权模式 Cortex-A 增加的工作模式:

8.  监控模式 : 是为了安全而扩展出的用于执行安全监控代码的模式

 

 

二. ARM 指令集

 ARM指令集:一条指令占 32 位 ,4字节,影响 PC 中的地址

 

Thumb指令集: 一条指令占 16 位 ,2字节 

 

 

 

三. ARM 寄存器

Cortex-A 寄存器:标三角的是相应模式状态下的独立的寄存器;其他事通用寄存器,也就是各个模式下可以共同使用的寄存器;Cortex-A 共40个寄存器, 共23 个特殊功能寄存器,17 个通用寄存器。

  R13 :栈指针寄存器  SP 保存栈内存空间的首地址值

  R14:链接寄存器  LR   保存函数返回地址值

  R15:当前程序计数器  PC  保存当前取址指令的地址值

  CPSR:当前程序状态寄存器

  SPSR:保存程序状态寄存器,用来保存 CPSR 值

  PC 寄存器指向的地址值:

     对于ARM 状态(arm指令集), PC 寄存器的低2位没有定义 PC[1,0] ,arm指令占 4字节,也就是PC 中地址是4的倍数

    对于Thumb状态(Thumb指令集),PC寄存器的低1位没有定义 PC[0],Thumb占 2字节,也就是PC中地址是 2 的倍数, PC 中的地址就是每条执行指令的地址

 CPSR 寄存器中各bit 对应的功能

 

转载于:https://www.cnblogs.com/electronic/p/11027006.html


http://lihuaxi.xjx100.cn/news/235509.html

相关文章

swift 中高德地图随时读取坐标地点的写法

自己写的方法 不比比 自己能看懂就行 只用作自己学习swift的总结 import UIKit typealias block (String,String) ->() class MoveCarViewController: UIViewController,MAMapViewDelegate,AMapLocationManagerDelegate,AMapSearchDelegate,UITextFieldDelegate,UIAler…

wireshark

1.Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。 能获取HTTP,也能获取…

java web学习项目20套源码完整版

java web学习项目20套源码完整版 自己收集的各行各业的都有,这一套源码吃遍所有作业项目! 1、BBS论坛系统(jspsql)2、ERP管理系统(jspservlet)3、OA办公自动化管理系统(Struts1.2Hibernate3.0Spring2DWR)4、…

反向春运成为新趋势 客流年增9%

资料图:春运。殷立勤 摄 中新社北京1月18日电 (记者 周音)近年来,反向春运成为新趋势。中国铁路总公司18日披露,反向春运客流以年增9%左右的速度增长。 传统春运是大城市返乡回家过年。反向春运是年轻人选择将老家的父母和孩子接来自己工作的…

判断手机版本

/**判断是否系统版本大于8.0系统 大于或等于8.0返回true 否则返回false*/ let IS_IOS8 (UIDevice.currentDevice().systemVersion as NSString).doubleValue > 8.0 let IS_OS_5_OR_LATER (UIDevice.currentDevice().systemVersion as NSString).doubleValue > 5.0 let…

CST概念

CST:(Common Spanning Tree)公共生成树,是连接交换网络内所有MST域的一棵生成树。 CST即是连接各个MST域之间的树,它是CIST的一个部分。是用来互联MST区域的单生成树。如果把每个MST区域看作是一个"设备",CST就是这些&q…

Swift 中使用 SQLite——打开数据库

关于Swift中使用SQLite,接下来可能会分别从打开、增、删、改、查,几个方面来介绍SQLite的具体使用,这一篇重点介绍一下如何打开。 定义全局数据库访问句柄 /// 全局数据库访问句柄 private var db: COpaquePointer nil实现打开数据库函数 …

01-HTML基础与进阶-day6-录像281

04css选择器.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title><style type"text/css">/* p div 标签选择器*/p {color: red; /* k:v color表示样式属性 颜…