寄存器

AArch64:64位执行状态
31个64位寄存器:X0~X30
1个64位程序计数指针寄存器PC
1个栈指针寄存器SP
1个异常链接寄存器
4个异常等级EL0~EL3
1个处理器状态寄存器PSTATE

系统寄存器
<register_name>_ELx (x可以是0,1,2,3)
如SP_EL0表示EL0下的SP寄存器

PSTATE寄存器的字段:
N:负数标志位
Z:0标志位
C:进位标志位
V:有符号溢出标志位
EL:当前异常等级
SP:选择SP寄存器,当运行EL0时选择SP_EL0,当其他异常等级时可以选择SP_EL0或SP_ELn寄存器
A:用来屏蔽系统错误(SError)
I:用来屏蔽IRQ
F:用来屏蔽FIQ

特殊寄存器
NZCV寄存器
UAO寄存器:ARMv8.2扩展
PAN寄存器:ARMv8.1扩展
SPSel寄存器:
DAIF寄存器:
CurrentEL寄存器:
XZR/WZR:零寄存器
PC指针寄存器
SP寄存器:SP_EL0,SP_EL1,SP_EL2,SP_EL3
SPSR寄存器:SPSR_EL1,SPSR_EL2,SPSR_EL3
ELR寄存器:ELR_EL1,ELR_EL2,ELR_EL3

AArch32:32位执行状态
13个32位通用寄存器,PC,SP,LR
两套指令集A32和T32(Thumb指令集)