处理器模式

用户模式(user)简称usr

快速中断模式(FIQ)简称fiq

外部中断模式(IRQ)简称irq

特权模式(supervisor)简称sve

数据访问终止模式(abort)简称abt

未定义指令后终止模式(undefined)简称und

除了用户模式以外,其他的模式成为特权模式,这些模式下,程序可以访问所有系统资源,也可以任意进行处理机模式

处理其模式可以通过软件进行控制,可以同国外部中断或者是异常处理进行切换,大多数的用户程序运行在用户模式下,这时候应用程序不能访问一些受系统保护的系统资源

ARM处理器共有37个寄存器

其中包括: 31个通用寄存器和程序计数器(pc)这些寄存器都是32位寄存器

      6个状态寄存器,这些寄存器都是32位寄存器,但是目前只是用了其中的12位

通用寄存器的分类

      未备份的寄存器:R0~R7

      备份寄存器P8~R14

      程序计数器PC,即R15

未备份的寄存器:RO~R&,对于每个未备份寄存器来说,在所有的处理器模式下指的都是同一个物理寄存器,在异常中断造成处理器模式切换,由于不同的处理其模式使用相同的物理地址,可能造成寄存器数据被破坏,未备份寄存器没有被系统用于别的特殊的用途,任何可采用通用寄存器的场合都可以用未备份寄存器

备份寄存器

    对于备份寄存器R8~R12来说,每个寄存器对应两个不同的物理地址,例如在快速终端模式下,R8和R9分别记做R8_fiq,R9_fiq,当使用用户模式下的寄存器的时候,寄存器R8he寄存器R9分别记作R8_usr,R9_usr,这两种情况使用的物理地址是不同的,系统没有见这几个寄存器用于任何的特殊用途

    对于备份的寄存器R13和R14来说,每个就处理器对应6个不同的物理地址,其中一个是用户模式和系统模式共用的,另外的5个是对应于其他5中处理机模式

寄存器R13在ARM模式下常用作堆栈指针,每一种异常模式都有自己的物理的值的R13,因此,初始化应用程序是应该初始化R13,使其指向异常模式专用的堆栈地址

寄存器R14又称为链接寄存器,在ARM体系结构中具有下面两种用途

  1:每一种处理器模式自己的物理地址R14中存放当前子程序的返回地址,当通过BL或者BLX指令调用子程序时,R14被设置成该子程序的返回地址

  2:但异常中断发生时,该异常模式特定的物理R14被设置成异常模式将要返回的地址,对于有些异常模式,R14的值可能与将返回的地址有一个常数的偏移,具体的返回方式与上面的子程序返回基本相同

  

程序计数器PC R15

  由于ARM采用了流水线机制,当正确读取了PC的值的时候,该值为当前指令地址值加8个字节(因为是32位的)因此一次处理的是32位(也就是4个字节)

  当成功向R15写入一个地址数值的时候,程序将跳转到改地址进行执行

程序状态寄存器CPSR

   CPSR(当前程序状态寄存器)可以在任何处理器模式下被访问,它包含了条件标志位,中断净值为,当前处理器模式标志以及其他的一些控制位,每一种模式下都有个专用的物理状态的状态寄存器(称为SPSR)但特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容,当异常中断退出时,可以用SPSR中保存的值来恢复CPSR

   

程序状态寄存器的格式如下:

N = 1表示结果为负数,N= 0表示结果为正数

z = 1表示结果为0,z = 0表示结果不为0

c表示有进位借位情况发生

v表示有溢出

I表示中断IRQ,F表示中断FIQ,T表示运行的状态,当T= 1表示运行在THUMB上,当T = 0 表示运行在ARM状态

后面的四位表示其中模式的选择

转载请注明链接地址:http://www.cnblogs.com/fengdashen/p/3724709.html

ARM处理机模式--内部寄存器的更多相关文章

  1. ARM(哈弗、冯氏结构、总线和IO访问、处理器状态和处理机模式)

    1.哈弗结构与冯氏结构 (1)区别: 是否有独立的存储架构和信号通道. (2)举例: 8086:冯氏结构(相同的存储相同的通道) STM32F103:哈弗结构(不同的存储.通道) 8051:改进的哈弗 ...

  2. ARM工作模式

    ARM工作模式 学习ARM的最好的资料是ARM公司发布的资料:ARM Architecture Reference Manual.pdf 找到章节:Programmers’ Model 由文档可知:A ...

  3. ARM处理器模式

    ARM处理器模式 ARM处理器共有7种运行模式: l  用户模式(User,usr):正常程序执行的模式 l  快速中断模式(FIQ,fiq):用于高速数据传输和通道处理 l  外部中断模式(IRQ, ...

  4. arm工作模式笔记

    linux用户态程序即应用程序,在user模式 linux内核运行在svc模式 arm七个模式: usr用户模式 fiq快速中断模式 irq普通中断模式 supervior   svc模式 abort ...

  5. 浅析arm的异常、中断和arm工作模式的联系

    说到异常向量,会让人联想到中断向量.其实,中断是属于异常的子集的,也就是说中断其实是异常其中的一种. 回到异常向量,他其实是一张表格,每个格子里存放的是一个地址,或者是一个跳转命令,不管是哪个,其目的 ...

  6. ARM编程模式和7钟工作模式

    一. ARM的基本设定 1.1. ARM 采用的是32位架构 1.2. ARM约定: a. Byte : 8 bits b. Halfword :16 bits (2 byte) c. Word : ...

  7. ARM工作模式寻址

    用户模式(User)                 usr 快速中断模式(FIQ) fiq 普通终端模式(IRQ)     irq 保护模式(Supervisor) svc 数据访问终止模式(Abo ...

  8. ARM体系的7种工作模式

    一.ARM体系的CPU有以下7种工作模式:   用户模式(usr)    大多数程序运行于用户模式 特权模式   系统模式(sys)   运行具有特权的操作系统任务 异常模式 中断模式(irq)   ...

  9. 【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)

    : 12MHz 晶振 对应 405 ~ 532 MHz 处理速度; -- : 16K 指令缓存, 16K 数据缓存; -- : 32KB 指令缓存, 32KB 数据缓存; (3) 内存接口对比 : 提 ...

随机推荐

  1. apache common-io.jar FileUtils

    //复制文件  void copyFile(File srcFile, File destFile)   //将文件内容转化为字符串 String readFileToString(File file ...

  2. Linux 学习guideline

    记得在中国人气和高手最多的linuxform上看到的一句话. 现在自己的书架上以后lkd2+ldd3+情景分析,再加上它ulk3,书架的linux kernel的四库全书已经凑齐,很充实. lkd2: ...

  3. 从svn删除文件夹和文件

    由于项目开始放在自己项目组的一个服务器上,而且svn也是自己在该服务器上搭建的,但是不知道是什么原因,svn上的代码被误删了.为了更稳定地使用svn,所以使用公司的svn来管理代码. 运维将不是最新版 ...

  4. [Unity菜鸟] 产生各不相同的随机数

    1. 网上很多方法都说用时间种子来解决,但是在极短的时间内,这种方法没效 Random r = new Random(DateTime.Now.Millisecond); Random Counter ...

  5. AO总结10:MapControl控件

    MapControl对应ArcMap中的数据视图,它封装了Map对象,并提供了额外的属性.方法.事件用于: 1 管理控件的外观.显示属性和地图属性 2 添加并管理控件中的数据层 3 装载Map文档控件 ...

  6. Intellij IDEA创建javaWeb以及Servlet简单实现

    1.创建web工程 File --> New --> Project...

  7. 机器学习 —— 概率图模型(Homework: StructuredCPD)

    Week2的作业主要是关于概率图模型的构造,主要任务可以分为两个部分:1.构造CPD;2.构造Graph.对于有向图而言,在获得单个节点的CPD之后就可依据图对Combine CPD进行构造.在获得C ...

  8. (七)CSS定位(Positioning)

    CSS定位属性允许对元素进行定位. 一切皆为框: div.h1或p元素常被称为块级元素,而span和strong等元素成为行内元素,但是可是使用 display 属性改变框的类型,将display设置 ...

  9. android的helloworld工程目录学习

    android的helloworld工程目录学习 Android工程的主要目录有src.gen.Android X.X.bin.res等文件夹. 1.     Src文件夹 Src文件夹包含java源 ...

  10. C# WebBrowser准确判断网页最终装载完毕

    == 最近写了个软件叫WebAutoScript,目的用于,网页的自动操作处理,就是说,所有你在网页上面的操作,都可以录到一个脚本中,然后可以回放这个操作过程..我是说任何过程. 程序是用C#写的,其 ...