1 通用寄存器
- ARMv8提供了31个通用寄存器 R0~R30;
- 在AArch32架构,通用寄存器w0~w30是32bit宽度;
- 在AArch64架构,通用寄存器x0~x30是64bit宽度;
2 特殊寄存器
-
SP (stack pointer register) 指向当前栈的指针;AArch64架构为SP AArch32架构为WSP;
-
PC (program counter) 指向当前指令的地址;连接寄存器LR,保存子程序的返回地址; AArch32架构中LR使用R14、SP使用R13 AArch64架构中LR使用x30;
-
PSTATE (process state) 对进程状态信息的集合,包括以下寄存器集合:条件寄存器NZCV、异常屏蔽寄存器DAIF、SP选择寄存器SPSEL、异常等级寄存器CurrentEL,所有指令集都可以通过PSTATE反馈状态;此外,当发生异常时,这些标志位信息将被保存到对应异常级别的SPSR寄存器中;
可通过mrs指令可以读取寄存器的值、msr指令向寄存器写值;
-
System registers,系统寄存器为执行控制、状态和一般系统配置提供支持,大多数系统寄存器在EL0是不可访问的,但可以在系统初始化时配置一些系统寄存器允许在EL0级别执行的程序访问,任何从EL0到禁用访问权限的系统寄存器的访问都会导致指令表现为UNDEFINED;
EL0可以访问的寄存器有:
-
Cache ID registers The CTR_EL0 and DCZID_EL0 registers provide implementation parameters for EL0 cache management sup
-

本文详细介绍了ARMv8架构下的寄存器系统,包括通用寄存器、特殊寄存器和系统寄存器的功能及作用,并阐述了CPU的内部结构组成。
最低0.47元/天 解锁文章
5833





