湖南工程建设监理有限公司网站,做网站的励志故事,如何做网站的后台,新网站怎么做论坛推广一、zero 寄存器
零寄存器用作源寄存器时读取零#xff0c;用作目标寄存器时丢弃结果。您可以在大多数指令中使用零寄存器#xff0c;但不是所有指令。二、sp寄存器
在ARMv8架构中#xff0c;要使用的堆栈指针的选择在某种程度上与Exception级别。默认情况下#xff0c;异…一、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指令可以对当前栈指针进行读写调整函数中的堆栈指针。 例如:ADD SP, SP #0x10 //将SP调整为当前值之前的0x10字节三、Program Counter寄存器PC 原始ARMv7指令集的一个特点是使用了R15即程序计数器(PC)作为通用寄存器。个人电脑实现了一些聪明的编程技巧但它介绍了编译器的复杂性和复杂管道的设计。直接删除在ARMv8中访问PC使返回预测更容易并简化了ABI规范。
PC永远不能作为命名寄存器访问。它的用法隐含在某些指令中例如与pc相关的负载和地址生成。不能将PC指定为数据的目的地处理指令或加载指令。