码迷,mamicode.com
首页 > 其他好文 > 详细

arm体系结构

时间:2016-04-08 14:30:42      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:

arm体系结构主要有五个部分:

1、arm的工作状态,工作模式,寄存器组

2、流水线

3、存储结构

4、指令系统(指令集)

5、异常处理结构

----------------------------------------------------------------------

1、arm的工作状态,工作模式,寄存器组

包含:ARM状态:执行32位字对齐的arm指令,

Thumb状态:执行16位半字节对齐的指令,

注意:两种状态可以相互切换

启动后开始执行开始执行代码时,工作状态处于arm态。

-------------------------------------------------------------

工作模式:(共有7中)

管理模式(suv)保护模式:(系统调用,arm复位启动后,还有就是u-boot引导内核启动时,arm板所处的状态)

用户模式(usr):执行普通应用程序时;

系统模式(sys):超级用户执行指令时

中止模式(abt):运行出错时进入

未定义模式(udn):未定义指令运行出错时进入

快速中断模式:

外部中断模式:

注意:工作模式的切换可通过:软件实现,也可以通过中断来实现。

-----------------------------------------------------------------------------

寄存器组:

技术分享

总共有37个寄存器,31个通用寄存器,6个状态寄存器。

通用寄存器包括:R0-R15

分为:未分组寄存器:r0-r7

分组寄存器:r8-r14

程序计数器:r15(program count)pc;

各个寄存器的作用:

R0-R12:用于存放局部变量,其中R0-R3还可以用于存放参数(参数传递),在c与汇编混合编程时可用到,如果超过四个参数,其他参数放到栈中。

R13(sp Stack point):用于存放栈的地址,

R14(lr link register ):用于存放子程序的返回地址,也称子程序链接返回地址。

R15(程序计数器pc):用于存放当前工作模式下取指的指令的地址,指向当前执行的那条指令的地址,保存了下一条指令的地址。

CPSR(current program statue register):1、用来保存当前程序状态的寄存器,2、所有处理器模式下都可以访问当前程序状态寄存器(意味可以读写CPSR寄存器来修改处理器模式)。

SPSR(saved program statue register):异常发生时用于保存CPSR的值,从异常返回时,将CPSR_mode复制到CPSR中,恢复原来处理器的模式。(用于切换模式时保存CPSR的值)。

arm状态寄存器的格式

技术分享

通过修改前5位可切换处理器模式。

 

arm体系结构

标签:

原文地址:http://www.cnblogs.com/defen/p/5367643.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!