3.1 ARM 内部寄存器

ARM920T 总共有 37 个寄存器,其中 31 通用 32 位寄存器和 6 个状态寄存器,但不能在同一时刻对所有的寄存器可见。处理器状态和运行模式决定了哪些寄存器对程序员可见

3.1.1 ARM 状态时内部寄存器

在 ARM 状态,16 个通用寄存器和一个状态寄存器在任意时刻都可见。在特权(非用户)模式下,将切换到指定模式的分组(banked)寄存器。

ARM 状态时寄存器被设为包含 16 个直接可以访问的寄存器:R0 到 R15。除了 R15,其他全部寄存器都为通用寄存器,如可能用于保存数据或地址值。除此之外,还有第 17 个寄存器用于存储状态信息。

  

FIQ 模式包含 7 个分组寄存器,分别映射到 R8-14(R8_fiq-R14_fiq)。在 ARM 状态,有很多不需要保存寄存器的 FIQ 处理程序。用户,IRQ,管理中止和未定义模式都包含两个分组寄存器映射到 R13 和 R14,允许这些模式都都包含私有堆栈指针和链接寄存器

  

3.1.2 Thumb 状态时内部寄存器

Thumb 状态时的寄存器集为 ARM 状态时的寄存器的分配的一个子集。程序员能够直接访问 8 个通用寄存器R0 至 R7,还有程序计数器(PC),一个堆栈指针寄存器(SP),一个链接寄存器(LR)和 CPSR。

各自特权模式还分别有分组堆栈指针,链接寄存器和进程保存状态寄存器(SPSR)。
  

3.1.3 ARM 状态寄存器和 Thumb 状态的寄存器之间的关系

  

  

3.1.4 程序状态寄存器

ARM920T 包含了一个当前程序状态寄存器(Current Program Status Register-CPSR),另外还有 5 个用于异常程序处理的程序状态保存寄存器(Saved Program Status Registers-SPSR)。

  • 这些寄存器的功能为:

    • 保存最近已处理的 ALU 操作的信息
    • 控制中断的使能与禁止
    • 设置处理器的运行模式

  

  • N,Z,C 和 V 位为状态代码标志位。算术或逻辑操作结果可能会改变这些位,并检验以决定是否应该执行某条指令

3.2 特殊寄存器(SFR)

IO 端口/寄存器-它属于外设的组成部分!ARM 是采用与存储器统一编址的方式

使用软件编程控制某一硬件, 其实就是编程读写该硬件的寄存器。

三、ARM 寄存器及异常处理的更多相关文章

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

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

  2. ARM 寄存器 和 工作模式了解

    一. ARM 工作模式 1.   ARM7,ARM9,ARM11,处理器有 7 种工作模式:Cortex-A 多了一个监视模式(Monitor) 2.  用户模式:非特权模式,大部分任务执行在这种模式 ...

  3. ARM寄存器学习,王明学learn

    ARM寄存器学习 ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器.但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式. ...

  4. Arm寄存器介绍及汇编基础

    一.ARM处理器支持7种工作模式 ① 用户模式(USR): 用于正常执行程序(The normal ARM program execution state) ② 快速中断模式(FIQ): 用于高速数据 ...

  5. ARM寄存器的8种寻址方式01

    一.立即数寻址 操作数由指令本身给出 MOV r0,#0x0F //是所有寻址方式里面速度最快的,但是受到合法立即数的限制 立即数要求以#和$开头 十六进制,#后跟0x:十进制,#后直接加:八进制,# ...

  6. arm寄存器解析

    寒假闲来无事准备将自己的走过的arm之路总结一下,今天就先从arm的寄存器说起吧,欢迎各位拍砖. 要介绍arm寄存器之前我们要先了解一下arm处理器的工作模式: Arm处理器有七种工作模式,为的是形成 ...

  7. ARM 寄存器的介绍

    ARM  寄存器  31个通用, 32个程序状态寄存器 怎么算的呢: (R0--R15)   16  +  7 + 8  =31 通用 程序状态寄存器:    6 个 共  37 个. 不分组寄存器: ...

  8. R0-R37它是Arm 寄存器,那是,CPU内部。和GPIO注册所有外设。换句话说,要是arm的cpu,它包含了其他芯片公司将有R0-R37,和GPIO寄存器只有一个特定的芯片。

    R0-R37它是Arm 寄存器.那是,CPU内部.和GPIO注册所有外设. 换句话说,要是arm的cpu,它包含了其他芯片公司将有R0-R37,和GPIO有. 版权声明:本文博主原创文章.博客,未经同 ...

  9. [转帖] SS, SP, BP 三个寄存器

    SS, SP, BP 三个寄存器 https://blog.csdn.net/vspiders/article/details/55669265 这么看 计算机组成原理 还有 考试的很多题目非常有用啊 ...

随机推荐

  1. RabbitMQ中Confirm确认与Return返回消息详解(八)

    理解Confirm消息确认机制: 消息的确认,是指生产者投递消息后,如果Broker收到消息,则会给我们生产这一个应答. 生产者进行接收应答,用来确定这条消息是否正常的发送到Broker,这种方式也是 ...

  2. EventBus和Otto第三方构架

    代码 添加依赖:implementation 'org.greenrobot:eventbus:3.0.0'1注册并声明订阅者,然后发布事件最后解除注册 @Override protected voi ...

  3. 用shell和python实现数组的一个例子

    目标是把字符串中的值等分为几段,取每段固定位置的值 shell脚本 #!/bin/bash ele="1 2 3 4 5 6" n= array1=() for x in $ele ...

  4. 线性回归 r python 比较

    w http://blog.sina.cn/dpool/blog/s/blog_70f632090101bp8u.html

  5. oracle常用sql语句和函数

    --查询表的字段数 select count(*) from user_tab_columns where table_name = '表名'; --查询数据库用户密码的profile(一般为defa ...

  6. such as, for example, include和contain

    such as 后接动词,通常用动名词,有时也可用动词原形 for example 后接动词,用动名词 include vt. 包含,包括 后接动词,用动名词 英英: If one thing inc ...

  7. 002-Spring4 快速入门-项目搭建、基于注解的开发bean,Bean创建和装配、基于注解的开发bean,Bean初始化销毁、Bean装配,注解、Bean依赖注入

    一.项目搭建 1.项目创建 eclipse→project explorer→new→Project→Maven Project 默认配置即可创建项目 2.spring配置 <dependenc ...

  8. VMware 虚拟机的虚拟磁盘编程知识点扫盲之一

    目录 目录 前言 VMware 虚拟机文件类型 VMware 虚拟机的快照 Quiseced Snapshot Quiseced Snapshot 的创建过程 创建快照 创建快照的执行过程及原理 删除 ...

  9. if else 更优雅的写法(转)

    https://www.cnblogs.com/y896926473/articles/9675819.html

  10. ora-01033,ORA-16038

    ORA-01033: ORACLE initialization or shutdown in progress 1.进入CMD,执行set ORACLE_SID=fbms,确保连接到正确的SID:2 ...