ARM处理器的寄存器组织

简介:    一,ARM状态下的寄存器组织     ARM处理器有37个寄存器,包括31个通用寄存器(含PC)和6个状态寄存器。如图:          1,状态寄存器                   状态寄存器公有6个,其中除了公用的CPSR之外,还有分组的SPSR,程序状态寄存器的格式为:           其中,条件标志码为N,Z,C,V,Q; 分别为符号标志位,全0标志位,进借位标志,溢出标志,增强的DSP运算指令是否标志。

   一,ARM状态下的寄存器组织

    ARM处理器有37个寄存器,包括31个通用寄存器(含PC)和6个状态寄存器。如图:

   

     1,状态寄存器

        

         状态寄存器公有6个,其中除了公用的CPSR之外,还有分组的SPSR,程序状态寄存器的格式为:

    

     其中,条件标志码为N,Z,C,V,Q; 分别为符号标志位,全0标志位,进借位标志,溢出标志,增强的DSP运算指令是否标志。

     控制位为I,F,T,M4-M0; 其中I,F为控制中断的,T为ARM指令与Thumb指令切换的标志位。M4~M0为模式选择位。

     中间的26到8位保留。


   2,通用寄存器

          除了状态寄存器外,剩下的31个寄存器都为通用寄存器。

   总结:ARM处理器工作在不同模式,使用的寄存器有所不同,共同点是:无论何种模式,R15均作为PC使用;而是CPSR为当前程序状态寄存器;三是R0~R7为公用通用寄存器。不同之处在于高端7个通用寄存器和状态寄存器在不同模式下不同。


二,Thumb/Thumb-2状态下的寄存器组织 

Thumb状态下的寄存器组是ARM状态下寄存器组的子集,thumb状态下的寄存器组如上。

    高位寄存器R8~R12没有放其中,即高位寄存器并不是标准寄存器集的一部分,但是可使用汇编语言程序受限制的访问这些寄存器,将其用做快速的暂存器。使用带特殊变量的MOV指令,数据可以在低位寄存器和高位寄存器之间进行传送;高位寄存器的值可以使用CMPADD指令进行比较或加上低位寄存器中的值。


 



 





 



目录
相关文章
|
5月前
|
数据处理 编译器 数据库
x64 和 arm64 处理器架构的区别
x64 和 arm64 处理器架构的区别
|
1月前
ARM处理器函数调用时的参数传递
ARM处理器函数调用时的参数传递
|
5月前
|
存储 机器学习/深度学习 人工智能
嵌入式中一文搞懂ARM处理器架构
嵌入式中一文搞懂ARM处理器架构
184 1
|
5月前
|
存储 缓存 物联网
DP读书:鲲鹏处理器 架构与编程(二)服务器与处理器——高性能处理器的并行组织结构、ARM处理器
DP读书:鲲鹏处理器 架构与编程(二)服务器与处理器——高性能处理器的并行组织结构、ARM处理器
306 0
|
5月前
|
存储 算法 Linux
内存系列学习(五):ARM处理器中的Cache和Write Buffer
内存系列学习(五):ARM处理器中的Cache和Write Buffer
202 0
内存系列学习(五):ARM处理器中的Cache和Write Buffer
|
5月前
|
缓存 算法
内存系列学习(七):ARM处理器的快速上下文切换技术
内存系列学习(七):ARM处理器的快速上下文切换技术
130 0
|
5月前
|
存储 缓存 Linux
内存系列学习(六):ARM处理器存储访问一致性问题
内存系列学习(六):ARM处理器存储访问一致性问题
320 0
|
5月前
|
存储 缓存 Linux
内存系列学习(三):ARM处理器地址变换过程
内存系列学习(三):ARM处理器地址变换过程
124 0
|
5月前
|
存储 缓存 算法
内存系列学习(二):ARM处理器中CP15协处理器
内存系列学习(二):ARM处理器中CP15协处理器
112 0
|
11月前
|
存储 缓存 编译器
面向未来:理解ARM处理器的新一代技术(下)
面向未来:理解ARM处理器的新一代技术