本章思考题
- ARMv8体系结构处理器包含多少个通用寄存器?
答:提供31个64位宽的通用寄存器,可以减少对栈的访问,从而提高性能。 - AArch64执行状态包含多少个异常等级?它们分别有什么作用?
答:定义ARMv8异常模型,支持4个异常等级,即EL0~EL3。 - 请简述PSTATE寄存器中NZCV标志位的含义。
答:如下表所示。分类 字段 描述 条件标志位 N 负数标志位。
在结果是有符号的二进制补码的情况下,如果结果为负数,则N=1;如果结果为非负数,则N=0Z 0标志位。
如果结果为0,则Z=1;如果结果不为0,则Z=0C 进位标志位。
当发生无符号数溢出时,C=1。
其他情况下,C=0V 有符号数溢出标志位。
- 对于加/减法指令,在操作数和结果是有符号的整数时,如果发生溢出,则V=1;如果未发生溢出,则V=0。
- 对于其他指令,V通常不发生变化 - 请简述PSTATE寄存器中DAIF异常掩码标志位的含义。
答:如下表所示。分类 字段 描述 异常掩码标志位 D 调试位。使能该位可以在异常处理过程中打开调试断点和软件单步等功能 A 用来屏蔽系统错误(SError) I 用来屏蔽IRQ F 用来屏蔽FIQ