当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > ARM:指令寄存器

ARM:指令寄存器 时间:2018-12-12      来源:未知

在arm 处理器共有37个寄存器。其中包含,31个通用寄存器,6个状态寄存器,多有的这些寄存器都是32位寄存器。Arm微处理器有7中工作模式,在不同的工作模式下有不同的寄存器组,某些寄存器在不同的工作模式下是公用的。

下图是arm微控制器的组织模式:

ARM处理器,指令寄存器,ARM嵌入式

其中 R13,R14,R15,分别对应SP栈顶地址寄存器(指向函数中的局部变量的内存空间)、lR链接寄存器(函数return时将会返回到IR指向的内存空间执行),PC程序计数器寄存器(保存当前正在执行的机器指令所在存储单元的地址值,可以自动加1操作跳过4个字节指向下一条指令的地址)。

这些寄存器是arm中央处理器内的组成部分,在其内部存在一个指令寄存器(IR)用来保存当前正在执行的一条指令。PC保存的是正在执行的这条指令的地址。不同的中央处理器的指令寄存器长度是不一样的,通常和指令的长度相等。ARM指令长度为32比特位,IR的大小也是32bits。一条指令的32个比特位被分为两段操作码和地址码。执行指令前先检测指令是否是合法的指令,如果不能识别会产生未定义指令异常。指令寄存器中操作码会送入指令译码器中。经过译码后想操作控制器发出具体操作的制定信号,例如加法,减法等。

获取一条指令的过是,将PC指向的主存地址中的指令从主存取出并送入指令寄存器IR中,然后PC自加1,跳过4个字节的存储单元,指向主存中的下一条指令。

指令寄存器是用来存放当前的处理器正在执行的指令,比如对于arm汇编语言中的一条指令mov r1, #5, 会被汇编器编译为32个比特位的 E3A01005H。E3A01005H在取值的时候就会从主存储其中取出并送入IR寄存器中。经过执行 r1 寄存器被赋值为5。

ARM处理器中指令寄存器(IR)和程序计数器(PC)的区别:

程序计数器PC也就是上图中标识的R15寄存器,用于保存主存的内存地址,它指向的内存中保存的是一条一条的ARM指令(4字节一个的机器指令)。执行完成一条指令之后PC会自定加1(移动四个字节),执行主存中的下一条机器指令。PC寄存器用于保存地址,这个概念跟C语言中的指针变量类似,所以有地方也称它为PC指针。

指令寄存器IR用于保存PC指向的保存在主存中的机器指令。大家知道一条指令的执行包括取指,译码,执行三个过程。其中取指过程就是将PC指向的保存在主存中的机器指令获取到处理器中的IR寄存器中,也就是将机器指令从主存获取到处理器的过程。然后再通过译码和执行,那么一条指令就执行结束了。

上一篇:STM32单片机如何编程

下一篇:matlab定义函数

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部