基础篇(二).ARMv8寄存器(1)

ARMv8寄存器(1)


ARMv8寄存器实在太多了,本节主要针对系统软件常用的寄存器作为重点介绍。

1.ARMv8寄存器介绍

ARMv8架构(针对Core来说)至少有上千个寄存器,更别提Core外SOC级外设寄存器。这两类寄存器的区别是:前者(不管通用寄存器还是系统寄存器)不占用地址空间,而后者是和内存统一编制的,要占用地址空间。

下面我们主要针对ARM Core内寄存器进行介绍。ARM核心寄存器可以分为:

  • 通用寄存器。这类寄存器主要是用来暂存数据和参与运算。通过load\store指令操作。
  • 状态寄存器。AArch64体系结构使用PSTATE寄存器表示当前处理器状态。
  • 特殊寄存器。有专门的用途,用于控制处理器的行为,或表示CPU的状态。
  • 系统寄存器。除了以上寄存器,ARMv8体系结构还定义了很多系统寄存器,用来完成对处理器不同功能的配置。对应ARMv7的cp15寄存器。

而系统寄存器,根据其功能又可以分为11种:

  • 基本系统寄存器。
  • 特殊目的寄存器。3个ELR, 4个SP, 8个SPSR。
  • VMSA(虚拟内存架构)特殊寄存器。
  • ID寄存器。
  • 性能监控寄存器。
  • DEBUG寄存器。
  • RAS寄存器。
  • 通用定时器寄存器。
  • Cache维护相关寄存器。
  • 地址转换寄存器。
  • TLB维护寄存器。
  • 分支预测寄存器。

2.重点寄存器

这么多寄存器很难记得住,我们只需要重点关注以下寄存器,其余寄存器用到时候再查手册。

寄存器 描述
PSTATE 程序状态寄存器
SP_ELx(x>0) 在EL1/EL2/EL3 level中,如果spsel=0,则使用SP_ELx(x>0)
SP_EL0 在所有level中,如果spsel=1, 则使用SP_EL0
SPSR 备份的程序状态寄存器
ELR_ELx(x>0) 异常链接寄存器,记录着异常时程序的返回地
ESR_ELx(x>0) 同步异常, 异常特征寄存器</
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

老衲不依

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

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

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

打赏作者

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

抵扣说明:

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

余额充值