您的位置 首页 ADAS

ARM体系结构详解之ARM寄存器

ARM有37个寄存器,其中31个通用寄存器,6个状态寄存器。这里尤其要注意区别的是ARM自身寄存器和它的一些外设的寄存器的区别。ARM

ARM有37个寄存器,其间31个通用寄存器,6个状况寄存器。

  这儿特别要留意差异的是ARM本身寄存器和它的一些外设的寄存器的差异。

  ARM本身是一致架构的,也就意味着37个寄存器不管在哪个公司的芯片里边都会呈现。可是各家公司会对ARM进行外设的扩展,所以就呈现了很多外设寄存器,必定要与这37个寄存器差异开来!!!

  1、备份寄存器(R8-R14)

  关于R8-R12来说,除在快速中止形式下,每个形式对应相同物理寄存器,所以在FIQ形式下可不必维护和康复中止现场。

  关于R13-R14来说,每个寄存器对应6个不同的物理寄存器,其间一个是用户形式和体系形式共用的。

  寄存器R13常用做栈指针SP,除用户和体系形式外,其他形式在运用时的姓名构成为R13_。

  寄存器R14又被称为衔接寄存器(LR),除用户和体系形式外,其他形式在运用时的姓名构成为 R14_。

  R14有下面两种特别用处:

  A、每个处理器形式自己的物理R14中寄存在当时子程序的回来地址。当经过BL或BLX指令调用子程序时,R14被设置成该子程序的回来地址。

  B、当反常中止产生时,该反常形式下的R14被设置成保存该形式根据PC的回来地址,关于有些反常形式,R14的值有或许与将回来的地址有个常数的偏移量,不同形式偏移量还有所不同(在ARM 的反常处理里有具体介绍)。

  2、不分组寄存器(R0-R7)

  不分组也便是说说,在一切的处理器形式下指的都时同一物理寄存器。在反常中止形成处理器形式切换时,因为不同的处理器形式运用一个姓名相同的物理寄存器,便是运用的同一个寄存器,这样或许形成寄存器中数据被损坏,所以在进行形式切换时有必要加以维护。

  

  3、程序计数器R15

  关于用户来说,尽量防止运用STR/STM指令来保存R15的值。当成功向R15写入一个地址数值时,程序将跳转到该地址履行。

  在ARM状况下指令总是字对齐的,所以PC的PC[1:0]位恒为零,在想PC写入地址时必定要留意将PC[1:0]设为零。

  ARM选用的是3级流水线结构,所以PC指向的是当时履行指令的下两条指令,PC-8为当时指令地址。

  4、程序状况寄存器

  CPSR(当时程序状况寄存器)能够在任何处理器形式下被拜访。一起除了用户和体系形式以外,每中处理器形式下都有一个专用的物理状况寄存器,称为 SPSR(备份程序状况寄存器)。当特定的反常中止产生时,这个寄存器用于寄存当时程序状况寄存器的内容。当在用户形式和体系形式中拜访SPSR,将会产生不行预知的成果。

  CPSR和SPSR的格局相同,如下:

  0:M0

  1:M1

  2:M2

  3:M3

  4:M4

  5:T(=1 Thumb履行)

  6:F(=1是制止)

  7:I(=1是制止)

  留意:M0~M4并不是一切的组合都界说了有用的处理形式,假如过错设置,将会引起无法意料的过错。

  27:Q 在ARM V5的E系列处理器中,CPSR的bit[27]称为q标识位,首要用于指示增强的dsp指令是否产生了溢出。相同的spsr的bit[27]位也称为q 标识位,用于在反常中止产生时保存和康复CPSR中的Q标识位。

  在ARM V5曾经的版别及ARM V5的非E系列的处理器中,Q标识位没有被界说

  28:V 关于加减运算指令,当操作数和运算成果为二进制的补码表明的带符号数时,V=1表明符号为溢出;一般其他指令不影响V位。

  关于其他指令,V统常不产生改变。

  29:C 下面分四种状况评论C的设置办法:

  在加法指令中(包括比较指令CMN),当成果产生了进位,则C=1,表明无符号运算产生上溢出;其他状况C=0。

  在减法指令中(包括减法指令CMP),当运算中产生借位,则C=0,表明无符号运管用产生下溢出;其他状况下C=1。

  关于包括移位操作的非加减运算指令,C中包括最终一次移出位的数值。

  关于其他非加减运算指令,C位的值一般不受影响。

  30:Z z=”1表明运算的成果为零”;z=0表明运算的成果不为零。关于CMP指令,Z=1表明进行比较的两个数巨细持平。

  31:N 当两个表明的有符号整数运算时,n=1表明运算成果为负数,n=0表明成果为正书或零。

  MRS:状况寄存器到通用寄存器的传送指令。

  MSR:通用寄存器到状况寄存器的传送指令

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/262996.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部