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

相关推荐
Jason Yan15 小时前
【经验分享】ARM Linux-RT内核实时系统性能评估工具
linux·arm开发·经验分享
dot to one1 天前
C++入门 详细版
c语言·开发语言·汇编·c++
7yewh1 天前
MCU、MPU、SOC、ECU、CPU、GPU的区别到底是什么
linux·arm开发·驱动开发·单片机·嵌入式硬件·物联网
7yewh1 天前
嵌入式知识点总结 ARM体系与架构 专题提升(一)-硬件基础
arm开发·stm32·单片机·嵌入式硬件·mcu·物联网
ARM&开发(Haidong)2 天前
Arm 驱动i2c相关
arm开发
大块奶酪----2 天前
汇编与逆向(一)-汇编工具简介
汇编
€:0ͤ̀҉3 天前
汇编学习笔记(自用)
汇编·笔记·学习
艾格北峰3 天前
STM32 物联网智能家居 (五) 设备子系统之点亮LED灯
arm开发·stm32·单片机·嵌入式硬件·物联网·架构·智能家居
苏三福4 天前
opencv3.4 ffmpeg3.4 arm-linux 交叉编译
linux·运维·arm开发
kse_music5 天前
Big-endian(大端字节序)与Little-endian(小端字节序)区别
arm开发·字节·大端字节·小端字节