8.ARM寄存器详细解说ARM寄存器的简单分类:图1-1:

8.ARM寄存器详细解说

ARM寄存器的简单分类:图1-1:

图1-1

ARM微处理器中共有37个32位寄存器,其中31个通用寄存器,6个状态寄存器。但是这些寄存器不能被同时访问,在七种模式中,可以访问的寄存器种类不同。但是,通用寄存器R14——R0、程序计数器PC、一个状态寄存器cpsr都是可以被访问的。

具体的情况如下图1-2所示:

图1-2

寄存器分类:

????1、不分组通用寄存器:

R0-R7是不分组寄存器。所谓不分组就是在七种模式下的任意一种模式都访问同一个物理寄存器地址。就是不分组寄存器没有特权模式,任意一种模式都可以使用未分组寄存器。

????2.分组寄存器R8——R12:

FIQ模式分组寄存器R8——R12.

FIQ以外的分组寄存器R8-----R12

????3.分组寄存器R13、R14:

寄存器R13通常用做堆栈指针SP。

寄存器R14用做子程序链接寄存器(Link Register LR),也称为LR,指向函数的返回地址。

????4.程序计数器:

寄存器R15被用做程序计数器,也称为PC。其值等于当前执行的指令的地址+8(因为在取址和执行之间多了一个译码的阶段)。PC总是指向正在运行的后两条指令地址,即是当前执行指令的地址+8.

????5.状态寄存器:

图1-3:

图1-3

ARM所有工作模式下都可以访问程序状态寄存器CPSR。CPSR包含条件标志位、中断控制位、当前处理器模式以及其他状态和控制信息。CPSR在每种异常模式下都有一个对应的物理寄存器----程序状态保存寄存器SPSR。当异常发生的时候,SPSR用于保存CPSR的值,以便异常返回后恢复异常发生时的工作状态。

CPSR状态寄存器的示意图:图1-4:

图1-4

?

?

?

?

?

?

图1-5:

图1-5

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

ARM框架文档

31个通用寄存器,6个状态寄存器(一个cpsr,5个spsr)。

通用31个寄存器,被分为了三类:R0~R7,R8~R14,PC程序计数器(R15)。

?

R13常做堆栈指针的。

R14保存调用子函数的返回地址,和中断的返回地址。

用于程序计数器,pc指针。

cpsr:

?

?

?

?

?

?

?

?

?

解释:

?

时间: 2024-09-29 02:52:45

8.ARM寄存器详细解说ARM寄存器的简单分类:图1-1:的相关文章

ARM常用重要的寄存器及指令解释 和 指令英文全称

一.常用的寄存器 r0 -r3    临时变量  用于传递参数,传递返回指,当传递参数的参数大于4个时,用栈空间.即开辟sp fp:frame pointer  记录回溯sp ip: 很少用 ,临时存放sp sp:指向栈顶 lr:link register 用于跳转时记录返回地址 pc:记录cpu运行指令的地址     因为arm采用流水线方式   取值  译码  执行等   pc=pc+8,     即pc指向当前执行的指令的下两条. cpsr :状态寄存器,每种工作模式有自己的cpsr,记录

ARM处理器的寄存器,ARM与Thumb状态,7中运行模式

** ARM处理器的寄存器,ARM与Thumb状态,7中运行模式 分类: 嵌入式 ARM处理器工作模式一共有 7 种 : USR  模式    正常用户模式,程序正常执行模式 FIQ模式(Fast Interrupt Request)     处理快速中断,支持高速数据传送或通道处理 IRQ模式     处理普通中断 SVC模式(Supervisor)     操作系统保护模式,处理软件中断swi  reset ABT  中止(Abort mode){数据.指令}    处理存储器故障.实现虚拟

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

作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42375701 相关资源下载 :  -- 三星 ARM Architecture Reference Manual 文档 : http://download.csdn.net/detail/han1202012/8324641 一. ARM 芯片类型 1. ARM 分类 (1) ARM 分类类型(芯片 | 核 | 指令架构) ARM 分类 : -- ARM 芯片类型

大脸猫讲逆向之ARM汇编中PC寄存器详解

i春秋作家:v4ever 近日,在研究一些开源native层hook方案的实现方式,并据此对ARM汇编层中容易出问题的一些地方做了整理,以便后来人能有从中有所收获并应用于现实问题中.当然,文中许多介绍参考了许多零散的文章,本文重点工作在于对相关概念的整理收集,并按相对合理顺序引出后文中对hook技术中的一些难点的解读. Android平台大多采用了ARM架构的CPU,而ARM属RISC,与X86架构的处理器有不同的特征,本文讲介绍ARM中不容易理解的PC寄存器各种问题,包括ARM流水线.PC寄存

基于ARM处理器的反汇编器软件简单设计及实现

写在前面 2012年写的,仅供参考 反汇编的目的 缺乏某些必要的说明资料的情况下, 想获得某些软件系统的源代码.设计思想及理念, 以便复制, 改造.移植和发展: 从源码上对软件的可靠性和安全性进行验证,对那些直接与CPU 相关的目标代码进行安全性分析: 涉及的主要内容 分析ARM处理器指令的特点,以及编译以后可执行的二进制文件代码的特征: 将二进制机器代码经过指令和数据分开模块的加工处理: 分解标识出指令代码和数据代码: 然后将指令代码反汇编并加工成易于阅读的汇编指令形式的文件: 下面给出个示例

STM32定时器的预装载寄存器与影子寄存器之间的关系【转】

首先转载:   STM32定时器的预装载寄存器与影子寄存器之间的关系 本文的说明依据STM32参考手册(RM0008)第10版:英文:http://www.st.com/stonline/products/literature/rm/13902.pdf中译文:http://www.stmicroelectronics.com.cn/stonline/mcu/images/STM32_RM_CH_V10_1.pdf 在STM32参考手册的第13.14章中,都有一张定时器的框图,下面是第14章中定时

[游戏模版7] Win32 最简单贴图

>_<:this is the first using mapping. >_<:There will be introducing how to do: First load bitmap picture return handle give hbmp, as following: hbmp=(HBITMAP)LoadImage(NULL,"bg.bmp",IMAGE_BITMAP,600,450,LR_LOADFROMFILE); there "b

玩转html5(二)----用canvas结合脚本在画布上画简单的图(html5又一强大功能)

在html5中可以使用canvas标签在画布上画图,先直接上代码,这篇文章先简单介绍一下canvas的使用方法,简单画几个圆,矩形,三角形,写字. 在代码中均给出了注释,在这里特别强调的一点是:使用canvas画图时有时候必须beginPath和colsePath,但有时不需要,为了防止出现问题,可以在每次重新画一个图时重新开启路径,画完后关闭路径. 这些代码是在猎豹浏览器上实现的,有些浏览器可能不支持. <!DOCTYPE html> <meta charset="utf-8

【Java基础】异常的简单分类与处理

Java中所有的异常都继承自Throwable类,Throwable类的已知子类有Error和Exception. Error是指系统出现的错误,这种错误出现的时候,我们的程序无能为力,所以不需要进行处理. Exception则是在程序中出现的异常,我们通常对这些异常进行处理. Exception有很多的子类,有一类比较特殊,那就是RuntimeException.RuntimeException属于非受检异常,也就是编译器不会对这种异常进行检查,这类异常被允许不用捕捉,也就是不用catch.我