您的位置 首页 报告

GNU ARM汇编–(三)ARM处理器的基本原则

这一篇的知识来源全部来自《ARMSystemDeveloper39;sGuide》从编程人员的视角来看,arm核是由数据总线连接的功能单

这一篇的常识来历悉数来自《ARM System Developers Guide》

从编程人员的视角来看,arm核是由数据总线衔接的功用单元组成,如下图所示:

数据经过数据总线流向处理器中心,这儿的数据可所以即将履行的指令,也可所以数据项.上面的图是Von Neumann体系的arm核,数据项和指令共用同一总线.而h哈佛结构体系的arm核就会用两个不同的总线.

就像一切的RISC处理器,arm选用load-store体系结构.也就是说它含有两条不同的指令类型来收支处理器.loar指令将数据从内存拷贝到寄存器,store指令是将数据从寄存器拷贝到内存.没有直接操作内存中数据的数据处理指令.数据的处理离不开寄存器.

ARM指令一般有两个源寄存器,Rn和Rm,和一个意图寄存器,Rd.ARM的一个重要特性是Rm能够在送入ALU之前被桶型移位器做预处理,这样就会有许多方法的表达式和寻址方法.

下面介绍ARM处理器的几个要害重量:寄存器,当时程序状况寄存器和流水线

寄存器:

通用意图寄存器能够保存数据或许地址.由字母r和编号数字来表明.一切的寄存器都是32bit巨细.

一共有18个活动的寄存器:16个数据寄存器和两个程序状况寄存器.数据寄存器由r0–r15表明.

ARM处理器有3个寄存器分配为特别的功用:r13,r14,r15

r13一般用作栈指针(sp),存储当时处理器作业形式下的栈顶;

r14被称作链接寄存器(lr),当产生调用时寄存调用子程序的回来地址;

r15被称作程序计数器(pc),保存被处理器预取的下一条指令的地址.

除了这16个数据寄存器,还有来年各个程序状况寄存器:cpsr和spsr.处理器的当时作业形式决议了哪些寄存器是可见的.

当时程序状况寄存器:

ARM核运用cpsr来显现和操控内部的操作.通用程序状况寄存器的内部如下:

cpsr分为四个域,每个域有8位的宽度:flags,status,extension和control.control域包括处理器形式和状况以及中止屏蔽位.flags域包括condition flags.

处理器形式:

处理器形式决议了当时哪些寄存器是可用的以及cpsr自身的拜访权限.处理器形式分为特权形式和非特权形式:特权形式对cpsr有彻底的读写操控.而非特权形式

只能读cpsr的control域可是仍能够读写condition flags.

一共有7中处理器形式:六种特权形式(abort,fiq,irq,svc,system和undefined)和一种非特权形式(user).

当企图拜访内存失利时处理器会进入abort形式,fiq和irq对应ARM处理器的两种中止等级.svc是体系reset后进入的形式,也是os kernel作业的形式.

system形式是user形式的特别版别,它有对cpsr的读写操控.undefined形式在处理器遇到不决以的指令或许不支持的操作时运用.

user形式在应用程序下运用.

Banked registers:

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部