ARM 架构--通用寄存器/状态寄存器/控制寄存器/特殊用途寄存器

目录

一 ARM 架构中的寄存器

ARM 架构中的寄存器

通用寄存器

状态寄存器

控制寄存器

特殊用途寄存器

总结

二 通用寄存器

ARM 架构中的通用寄存器

ARMv7 架构

ARMv8 架构

实例

ARMv7 架构

ARMv8 架构

三 状态寄存器

ARM 架构中的状态寄存器

状态寄存器

详细说明

实例

ARMv7 架构

ARMv8 枩构

四 特殊用途寄存器

ARM 架构下的特殊用途寄存器

堆栈指针 (SP)

链接寄存器 (LR)

程序计数器 (PC)

系统寄存器 (SYSREG)


一 ARM 架构中的寄存器

ARM 架构中的寄存器

在 ARM 架构中,寄存器是 CPU 内部用于存储数据、地址和状态信息的关键组件。ARM 架构定义了一系列的寄存器,包括通用寄存器、状态寄存器、程序计数器等。下面是对 ARM 架构中主要寄存器的介绍:

通用寄存器

通用寄存器是一组用于存储数据和地址的寄存器。在 ARM 架构的不同版本中,这些寄存器的数量和命名有所不同。

  • R0-R15 (R0-R14 + PC):

    • 在 ARMv7 和之前的版本中,有 16 个通用寄存器,编号从 R0 到 R15。
    • R0 到 R14 用于存储数据和地址。
    • R15 通常被称为程序计数器(PC),用于存储下一条指令的地址。
  • X0-X30 (X0-X29 + SP):

    • 在 ARMv8 和之后的版本中,有 31 个通用寄存器,编号从 X0 到 X30。
    • X0 到 X29 用于存储数据和地址。
    • X30 通常被称为链接寄存器(LR),用于保存返回地址。
    • X31 通常被称为堆栈指针(SP),用于管理堆栈。

状态寄存器

状态寄存器用于存储 CPU 的状态信息,例如标志位、中断使能状态等。

  • Program Status Register (PSR):
    • PSR 是 ARM 架构中的一个重要的状态寄存器,包含了多个子寄存器,用于存储 CPU 的状态信息。
    • PSR 包括:
      • Application Program Status Register (APSR): 用于存储条件码标志位(如 N、Z、C、V 等)。
      • Implementation-defined Program Status Register (IPSR): 用于指示当前正在处理的中断。
      • Program Status Register (EPSR): 用于存储控制位,如中断使能位。

控制寄存器

控制寄存器用于控制 CPU 的行为,如中断控制、调试控制等。

  • Control Register (CTRL):
    • 用于控制某些 CPU 特性,如是否启用调试模式等。
  • Auxiliary Control Register (ACTLR):
    • 用于控制辅助特性,如性能监控单元(PMU)等。

特殊用途寄存器

除了通用寄存器和状态寄存器之外,ARM 架构还包括一些特殊用途的寄存器。

  • Stack Pointer (SP):
    • 用于管理堆栈,通常映射到通用寄存器 X31/R13。
  • Link Register (LR):
    • 用于保存返回地址,通常映射到通用寄存器 X30/R14。
  • Program Counter (PC):
    • 用于存储下一条指令的地址,通常映射到通用寄存器 X15/R15。
  • System Register (SYSREG):
    • 用于控制和监视 CPU 的各种特性和状态,如中断控制、缓存控制等。

总结

  • 通用寄存器:

    • 用于存储数据、地址等。
    • 在 ARMv7 和之前版本中,编号为 R0 到 R15。
    • 在 ARMv8 和之后版本中,编号为 X0 到 X30。
    • R15/X15 通常称为程序计数器(PC)。
    • X30 通常称为链接寄存器(LR)。
    • X31/R13 通常称为堆栈指针(SP)。
  • 状态寄存器:

    • 用于存储 CPU 的状态信息,如条件码标志位等。
    • 包括 APSR、IPSR 和 EPSR。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蘑菇二号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值