aarch64架构寄存器说明

1、aarch64通用寄存器:
ARMv8-aarch64有31个64位的寄存器:x0~x31,其中x29属于帧寄存器(FP),x30属于程序链接寄存器(LR);
2、aarch64特殊寄存器:

寄存器类型 寄存器
Zero register XZR/WZR
Program counter PC
Stack pointer SP_EL0/EL1/EL2/EL3
Program status register SPSR_EL1/EL2/EL3
Exception link register ELR_EL1/EL2/EL3

3、PSTATE:处理器状态;不是一个寄存器,由以下几个寄存器共同组成,包括条件寄存器NZCV、SP选择寄存器SPSEL、异常等级寄存器CurrentEL等等。当有异常发生时,PSTATE将保存到SPSRs寄存器中。
4、execption entry:
<!异常类型:同步异常、异步异常即中断,包括SError/IRQ/FIQ>

  • PSTATE -> SPSR_ELx
  • PC -> ELR_ELx //异常链接寄存器;
  • PSTATE(D,A,I,F) -> 0b1111
  • 更新ESR_ELx //异常综合寄存器,用来返回异常原因;
  • 选择SP_ELx
  • 跳转到异常向量定义的地址

5、execption execute
6、execption return:

  • 执行eret指令从异常返回
  • ELR_ELx -> PC
  • SPSR_ELx -> PSTATE

你可能感兴趣的:(ARM虚拟化技术,arm,寄存器)