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

相关推荐
Zevalin爱灰灰8 分钟前
Linux入门第二部分(ARM裸机篇) 第三章 汇编LED驱动实验
linux·汇编·arm开发
女神下凡5 小时前
芯参谋(83):AliOS Things_驱动开发指南
arm开发·驱动开发·单片机·嵌入式硬件·设计规范·1024程序员节
女神下凡5 小时前
芯参谋(84):Linux eMMC 驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件
Zevalin爱灰灰1 天前
Linux入门第二部分(ARM裸机篇) 第一章 开发环境搭建与了解
linux·arm开发·嵌入式
水饺编程1 天前
第2章:Linux 基础,制作【.tar.xz】压缩包文件
linux·c语言·汇编
一条破秋裤1 天前
基于 Hi3516CV610 的立定跳远视频测量系统调研与实施方案
arm开发·音视频
szxinmai主板定制专家1 天前
AMR 项目落地:机器人控制器硬件定制化需求复盘
arm开发·单片机·fpga开发·系统架构·机器人·am62x
secondyoung2 天前
Cortex-R52与TriCore详细对比
arm开发·单片机·嵌入式硬件·mcu
电子科技圈2 天前
Arm电机控制开发工具哪家强?
arm开发·单片机·嵌入式硬件·设计模式·软件构建
abc light2 天前
ARM 裸机开发(6)——时钟树与定时器
arm开发·单片机·fpga开发