Armv8/Armv9的Pstate寄存器介绍

PSTATE概述

在Armv7及其之前,有一个重要的寄存器叫做程序状态寄存器CPSR,但是到了Armv8/Armv9的aarch64架构时,删除了CPSR寄存器,改为了PSTATE(PE状态寄存器)。

PSTATE表示一组小寄存器的集合,在软件中不能直接访问PSTATE,需访问PSTATE中的小寄存器。 具体方法:使用寄存器的方式方法。MSR/MRS指令。

以下给大家列出来PSTATE的概览和每一个寄存器在PSTAE大寄存器中的memory Layout位置

ALLINT

仅当实现 FEAT_NMI 时,此寄存器才存在。否则,对 ALLINT 的直接访问是UNDEFINED

CurrentEL

表示当前的异常等级。

DAIF

中断掩码比特位。分别是Debug、Serror、IRQ、FIQ的MASK位。

DIT

只有当FEAT_DIT 实现时,该比特位才有意义,否则访问该寄存器就是就是UNDEFINED

NZCV

条件标志比特位。

MRS <Xt>, NZCV
MSR NZCV, <Xt>

PAN

特权等级不允许访问寄存器。

EL0 Translation regime输出的地址,不让特权等级程序访问。

PM

当FEAT_EBEP 实现时,才有效。

SPSel

SP栈指针选择比特位。 选择SP位 SP_EL0 或SP_ELx

SVCR

SVE相关的功能,后续在介绍。

SSBS, Speculative Store Bypass Safe

TCO, Tag Check Override

UAO, User Access Override

相关推荐
亿道电子Emdoor1 天前
【ARM】PACK包管理
arm开发
wypywyp2 天前
基于arm芯片的驱动开发——温湿度传感器dht11
arm开发·驱动开发
亿道电子Emdoor3 天前
【ARM】MDK如何实现使用Hex文件完成程序烧录
arm开发·stm32·单片机
彻骨寒风3 天前
在麒麟 ARM (aarch64)安装OpenJDK11和elasticsearchkibana
运维·arm开发·jenkins
2301_1472583693 天前
ARM - GPIO 标准库开发
arm开发
Yeats_Liao4 天前
X86、X64 与 ARM:架构的剖析与比较
arm开发·架构
ShiMetaPi4 天前
【GM3568JHF】FPGA+ARM异构开发板 使用指南:显示与触摸
arm开发·嵌入式硬件·fpga开发·rk3568
亿道电子Emdoor4 天前
【ARM】MDK出现:Unable to find ARM libraries
arm开发·stm32·单片机
2004v20044 天前
交叉编译 手动安装 libzip 库 移植ARM 需要 zlib的
linux·运维·arm开发
2301_783936324 天前
ARM相关的基础概念和寄存器
arm开发