您的位置 首页 传感器

ARM基础知识连载之一

ARM处理器共有37个寄存器。其中包括:**31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。**6个状态寄存器。这些寄存

ARM处理器共有37个寄存器。其间包含:

**31个通用寄存器,包含程序计数器(PC)在内。这些寄存器都是32位寄存器。

**6个状况寄存器。这些寄存器都是32位寄存器。

ARM处理器共有7种不同的处理器形式,每一种形式中都有一组相应的寄存器组。在任何时刻,可见的寄存器包含15个通用寄存器(R0-R14),一个或两个状况寄存器及程序计数器(PC)。在一切的寄存器中,有些是各形式共用一个物理寄存器,有一些寄存器各形式具有自己独立的物理寄存器。

****************************************************

通用寄存器

***************************************************8

通用寄存器分为以下三类:备份寄存器、未备份寄存器、程序计数器PC

未备份寄存器

未备份寄存器包含R0-R7。关于每一个未备份寄存器来说,一切处理器形式下都是运用同一个物理寄存器。未备份寄存器没有被体系用于特别的用处,任何可选用通用寄存器的场合都能够运用未备份寄存器。

备份寄存器

关于R8-R12备份寄存器来说,每个寄存器对应两个不同的物理寄存器。体系为将备份寄存器用于任何的特别用处,可是当中止处理十分简略,只是运用R8-R14寄存器时,FIQ处理程序能够不用履行保存和康复中止现场的指令,然后能够使中止处理十分敏捷。

关于R13,R14备份寄存器来说,每个寄存器对应六个不同的物理寄存器,其间的一个是体系形式和用户形式共用的;别的的五个对应于其他的五种处理器形式。选用下面的记号来区别各个物理寄存器:

R13_

其间MODE能够是下面几种形式之一:usr,svc,abt,und,irq,fiq

程序计数器PC

能够作为一般的通用寄存器运用,但有一些指令在运用R15时有一些约束。因为ARM选用了流水线处理器机制,当正确读取了PC的值时,该值为当时指令地址值加上8个字节。也就是说,关于ARM指令集来说,PC指向当时指令的下两条指令的地址。因为ARM指令是字对齐的,PC值的第0位和第一位总为0。

需求留意的是,当运用str/stm保存R15时,保存的或许是当时指令地址值加8个字节,也或许保存的是当时指令地址值加12个字节。究竟哪种方法取决于芯片的详细规划。关于用户来说,尽量防止运用STR/STM指令来保存R15的值。
当成功的向R15写入一个数值时,程序将跳转到该地址履行。因为ARM指令是字对齐的,写入R15的值应满意bits[1:0]为0b00,详细要求arm个版别有所不同:
**关于arm3以及更低的版别,写入R15的地址值bits[1:0]被疏忽,即写入r15的地址值将与0xFFFF FFFC做与操作。
**关于ARM4以及更高的版别,程序有必要确保写入R15的地址值bits[1:0]为0b00,否则将发生不行预知的结果。
关于Thumb指令集来说,指令是班子对齐的,处理器将疏忽bit[0]。

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部