ARMv8架构特殊寄存器介绍-0

一、zero 寄存器

复制代码
零寄存器用作源寄存器时读取零,用作目标寄存器时丢弃结果。您可以在大多数指令中使用零寄存器,但不是所有指令。

二、sp寄存器

复制代码
在ARMv8架构中,要使用的堆栈指针的选择在某种程度上与Exception级别。默认情况下,异常为目标选择堆栈指针异常级别,SP_ELn。例如,对EL1采取异常将选择SP_EL1。每一个异常级别有自己的堆栈指针,SP_EL0、SP_EL1、SP_EL2和SP_EL3。

当在AArch64中处于EL0以外的异常级别时,处理器可以使用:
  • 与异常级别(SP_ELn)相关联的专用64位堆栈指针。

  • 与EL0 (SP_EL0)相关的堆栈指针。

    EL0只能访问SP_EL0。

    后缀"t"表示选择SP_EL0堆栈指针。h后缀表示SP_ELn堆栈指针被选中。SP不能被大多数指令引用。然而,某些形式的算术指令,例如ADD指令,可以对当前栈指针进行读写调整函数中的堆栈指针。

bash 复制代码
	例如:
	ADD SP, SP, #0x10 //将SP调整为当前值之前的0x10字节

三、Program Counter寄存器(PC)

原始ARMv7指令集的一个特点是使用了R15,即程序计数器(PC)作为通用寄存器。个人电脑实现了一些聪明的编程技巧,但它介绍了编译器的复杂性和复杂管道的设计。直接删除在ARMv8中访问PC使返回预测更容易,并简化了ABI规范。

PC永远不能作为命名寄存器访问。它的用法隐含在某些指令中,例如与pc相关的负载和地址生成。不能将PC指定为数据的目的地处理指令或加载指令。

相关推荐
程序员Easy哥7 分钟前
ID生成器-第二讲:实现一个客户端批量ID生成器?你还在为不了解ID生成器而烦恼吗?本文带你实现一个自定义客户端批量生成ID生成器?
后端·架构
传感器与混合集成电路11 分钟前
提升多轴同步精度:DSP+FPGA架构在高端特种装备伺服控制中的应用
嵌入式硬件·fpga开发·架构
大大菜鸟一枚16 分钟前
ARM交叉编译环境配置与Qt依赖库部署指南
开发语言·arm开发·qt
Mintopia24 分钟前
🌏 父子组件 i18n(国际化)架构设计方案
前端·架构·前端工程化
Mintopia30 分钟前
🚀 垂直领域 WebAIGC 技术联盟:协同创新与资源共享模式
人工智能·架构·aigc
CinzWS31 分钟前
TrustZone-M的设计哲学
arm开发·arm·architecture
2***b8831 分钟前
【语义分割】12个主流算法架构介绍、数据集推荐、总结、挑战和未来发展
算法·架构
拾忆,想起31 分钟前
Dubbo异步调用与主线程同步完全指南:告别阻塞,掌控并发
前端·微服务·架构·dubbo·safari
macken999940 分钟前
centos7arm版本镜像下载存档
arm开发·x86_64开发
yihuiComeOn1 小时前
【大数据高并发核心场景实战】 - 设计秒杀架构必知必会的那些事
java·后端·微服务·架构