【嵌入式汇编基础】-ARM架构基础(二)
ARM架构基础(二)
文章目录
- ARM架构基础(二)
-
- 5、异常级别变化
- 6、Armv8-A 执行状态
- 7、AArch64 执行状态
-
- 7.1 A64 指令集
- 7.2 AArch64 寄存器
5、异常级别变化
在给定执行级别运行的程序会持续在该级别运行,直到处理器遇到“异常”。异常类型可以分为两类:同步异常和异步异常。同步异常可能由于程序错误而发生,例如执行无效指令或尝试访问内存中未对齐的地址。这些异常也可能由针对不同异常级别的异常生成指令引起,这些指令用于实现系统调用接口,以便较低特权级别的代码能够从较高特权级别请求服务,如图 5.1 所示。这些指令包括管理程序调用 (SVC)、虚拟机管理程序调用 (HVC) 和安全监视器调用 (SMC) 指令。异步异常可能由物理或虚拟中断引起,并处于待处理状态。这意味着这些异常与当前指令流不同步,因此被称为异步异常。当发生异常时,将调用目标异常级别的向量表中的异常向量。异常向量是异常的地址,它是相对于图 5.1:各自异常级别中的 SVC、HVC 和 SMC 调用的说明中定义的向量基地址的偏移量。
异步异常可能由物理或虚拟中断引起,并处于待处理状态。这意味着这些异常与当前指令流不同步,因此被称为异步异常。
当发生异常时,将调用目标异常级别的向量表中的异常向量。异常向量是异常的地址,该地址是相对于与异常级别 VBAR_ELn 关联的向量基地址寄存器(V