首页 > 其他分享 >ARM中一共有哪些寄存器

ARM中一共有哪些寄存器

时间:2024-10-12 10:35:28浏览次数:9  
标签:架构 浮点 一共 处理器 寄存器 协处理器 ARM

ARM架构中的寄存器集合可能会因不同版本(ARMv4、ARMv5、ARMv6、ARMv7等)和实现(如Cortex系列)的不同而略有差异,但基本的寄存器集是相似的。以下是ARM处理器典型的寄存器:

通用寄存器 (General-Purpose Registers, GPRs)

  • R0-R12: 用于数据处理和地址计算的通用寄存器。
  • R13 (SP): 栈指针寄存器,用于指向当前栈顶。
  • R14 (LR): 链接寄存器,存储函数或子程序返回地址。
  • R15 (PC): 程序计数器,包含当前执行的指令地址。

程序状态寄存器 (Program Status Registers)

  • CPSR (Current Program Status Register): 当前程序状态寄存器,记录了当前执行线上下文的状态信息,包括条件标志和当前处理器模式。
  • SPSR (Saved Program Status Register): 存储程序状态寄存器,用在异常处理中,保存异常发生前的CPSR状态。

浮点寄存器 (Floating-Point Registers) - VFP架构中使用

  • S0-S31: 单精度浮点寄存器,用于VFP操作。
  • D0-D31: 双精度浮点寄存器,由两个连续的单精度寄存器(如S0和S1组合成D0)组成。

SIMD和向量寄存器 (NEON架构中使用)

  • Q0-Q15/D0-D31: 在NEON技术中使用的128位和64位向量寄存器。Q寄存器用于SIMD(单指令多数据)操作,一个Q寄存器由两个D寄存器组成。

协处理器寄存器

ARM架构也支持协处理器寄存器,这些寄存器用于特定的协处理器,如系统控制协处理器(CP15)、浮点协处理器等。这些寄存器的数量和功能取决于特定协处理器的设计。

异常向量表寄存器 (在某些架构中)

  • 有些ARM处理器实现包括了异常向量表寄存器,这些寄存器包含了用于处理系统异常(如中断、复位、未定义指令等)的入口地址。

需要注意的是,以上寄存器可能不全存在于所有ARM处理器中。例如,早期ARM处理器可能不支持VFP或NEON技术,因此不会拥有相应的浮点或SIMD寄存器。而较新的ARM架构,如ARMv8,引入了64位处理能力,寄存器集也相应地发生了变化,比如增加了31个64位通用寄存器(X0-X30)和更多的NEON寄存器。

标签:架构,浮点,一共,处理器,寄存器,协处理器,ARM
From: https://www.cnblogs.com/peifx/p/18460002

相关文章

  • X86架构下的寄存器和ARM架构下的寄存器有什么区别
    x86架构和ARM架构的寄存器在数量、类型和用途方面有显著的差异。以下是两者寄存器的基本对比:x86架构寄存器在x86架构中,原始的32位体系结构(如x86)提供了以下几类寄存器:通用寄存器:EAX,EBX,ECX,EDX-主要用于数据操作和运算。ESI,EDI-用于字符串和内存数组操作。EBP-......
  • ARM结构下函数被调用时参数是如何传递的
    在ARM架构下,函数调用的参数传递遵循特定的调用约定,这些调用约定定义了如何在函数调用中传递参数、返回值以及保存寄存器的规则。ARM架构可采用不同的调用约定,但最常用的是ARM的标准调用约定,也称作AAPCS(ARMArchitectureProcedureCallStandard)。AAPCS(ARMArchitectureProcedur......
  • x86架构和ARM架构有什么区别?
    x86架构和ARM架构是当今两种主要的处理器架构,它们在设计哲学、指令集、能效比、应用场景等方面有显著的区别:指令集架构(ISA):x86/x86-64:这是英特尔和AMD主导的一种复杂指令集计算机(CISC)架构。x86原本指的是32位处理器,而x86-64(或AMD64)是其扩展,支持64位处理。CISC架构的特点是拥......
  • 【STM32开发之寄存器版】(九)-模数转换ADC
    一、前言本次DEMO目标:本文将使用STM32F103ZET6的ADC1通道1来采样外部电压值,并使用串口在上位机XCOM上打印出电压值。二、模数转换原理与基本概念2.1ADC基本概念模数转换器(ADC,Analog-to-DigitalConverter)是一种将模拟信号转换为数字信号的电子器件。它的主要功能是将......
  • 【STM32开发之寄存器版】(八)-定时器的编码器接口模式
    一、前言1.1编码器接口原理编码器模式主要用于检测旋转编码器的转动方向和转动速度。旋转编码器一般输出两路相位相差90度的脉冲信号(称为A相和B相),通过这两路信号,定时器可以判断编码器的旋转方向,并计数转动的脉冲数。1.2本次DEMO目标本次DEMO将使用STM32F103ZET6的PA6(......
  • 【STM32开发之寄存器版】(七)-PWM脉冲宽度调制
    一、前言PWM简介PWM(脉宽调制)是一种通过调节信号的脉冲宽度来控制功率输出的技术。其基本原理是保持固定频率的信号,将其高电平和低电平的持续时间调整,达到控制平均功率的目的。应用方面,PWM广泛用于电机控制、LED调光、音频放大、以及电源管理等领域,因为它能有效提高能效并减......
  • arm Linux中dma的cache管理
    概述前两周有人询问DMA下的cache操作和dma-coherent。以前零碎看过代码。临时找,还没有找到。这两天整理了调用流程,也找到了dma-coherent的用法。Linux的文档里没有详细说明dma-coherent的用法。根据代码,如果dma的设备树里有dma-coherent,Linux则认为硬件会维护cache一致性,不会在d......
  • ARM Cortex-M3/M4内核架构:中断处理过程
    目录一、概述1.保存现场?什么是现场?现场包括什么?2.怎么处理异常?我们先来简单介绍下。3.又怎么恢复现场?4.异常进入流程(核心流程)二、保存现场三、恢复现场1、EXC_RETURN2、恢复现场四、异常处理优化1、末尾连锁2、延时到达3、出栈抢占五、总结一、概述中断......
  • Android & iOS 使用 ARMS 用户体验监控(RUM)的最佳实践
    作者:元泊引言背景信息随着移动互联网技术的持续演进与全民互联网时代的深入,用户在Android、iOS应用程序、小程序、H5游戏及网页等多元化平台上的交互时长显著增长。这一趋势加剧了用户体验(UX)场景的复杂性,并对跨设备及多样网络环境下的性能监控提出了更高要求。在此背景下,深......
  • python 09-pycharm连接远程服务器
    准备一个云服务器(linux操作系统)找一个免费试用的服务器用于练习,这里用这个服务器:在pycharm中连接服务器‌-VirtualEnvironment‌:‌Python的虚拟环境,‌允许每个项目拥有独立的库和解释器,‌避免依赖冲突。‌通过virtualenv等工具创建,‌适用于隔离项目依赖。‌‌-Sy......