处理器模式

用户模式(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. QQ拼音还是不行哇

    QQ拼音还是不行啊,虽说没广告,但是很多词条没有,例如知乎.蒋京虎. 泰囧……

  2. 欧拉工程第66题:Diophantine equation

    题目链接 脑补知识:佩尔方差 上面说的貌似很明白,最小的i,对应最小的解 然而我理解成,一个循环的解了,然后就是搞不对,后来,仔细看+手工推导发现了问题.i从0开始变量,知道第一个满足等式的解就是最小 ...

  3. 百度地图API简单使用

    百度地图API是由JavaScript语言编写的,在使用之前需要将API引用到页面中:  现在新版本的需要密钥,下面用的是旧版的 <script src="http://api.map ...

  4. java:I/O 字节流和字符流

    字节流 InputStream和OutputStream的子类:FileInputStream 和 FileOutputStream 方法: int read(byte[] b,int off,int ...

  5. C++:函数模板与模板函数

    6.1 模板的概念 C++允许用同一个函数定义函数,这些函数的参数个数和参数类型不同.例如求最大值的max函数, int max(int x,int y) {       return (x>y ...

  6. linux下,如何把整个文件夹上传到服务器(另一台linux)

    1.Linux下目录复制:本机->远程服务器 scp  -r /home/shaoxiaohu/test1  zhidao@192.168.0.1:/home/test2 #test1为源目录, ...

  7. Linux下安装、配置、启动Apache

    http://www.cnblogs.com/zhuque/archive/2012/11/03/2763352.html#

  8. Mmap的实现原理和应用

    http://blog.csdn.net/edwardlulinux/article/details/8604400 很多文章分析了mmap的实现原理.从代码的逻辑来分析,总是觉没有把mmap后读写映 ...

  9. 浅谈PHP自动化代码审计技术

    原文出处: exploit   欢迎分享原创到伯乐头条 0×00 由于博客实在没什么可以更新的了,我就把目前做的事情总结一下,当做一篇博客,主要是谈一谈项目中所运用的一些技术.目前市面上有不少PHP的 ...

  10. VCC_VID_VTT等的含义

    VCC--为直流电压.在主板上为主供电电压或一般供电电压.例如 一般电路VCC3--+3V供电.主板上VCC3: 3.3V VCC25: 2.5V VCC333: 3.3V VCC5: 5V VCC1 ...