首页 > 编程知识 正文

arm v7a,crashreportclient

时间:2023-05-04 22:00:19 阅读:160905 作者:1752

参考文档: 《ARM Cortex-A Series Programmer's Guide for ARMv8-A》

一、通用寄存器

1、arm64共有31个通用寄存器,X0~X30

其中,X29也称为FP寄存器,X30也称为LR寄存器

各通用寄存器有Xn和Wn两种表示。 其中Xn表示64位,Wn表示低32位。 因此,读Wn相当于读Xn的低32bit值,写Wn相当于将其扩展为零,变成64bit,然后再写Xn

二、特殊寄存器

1、零寄存器

xzr(64bit )/wzr (32 bit ),读取该寄存器后返回全0。 注意:将忽略对寄存器的写入操作

2、PC寄存器

3、SP寄存器

sp (64位)/wsp (32位)

每个扩展级别都有自己的SP寄存器,始终根据目标扩展级别进行选择。 例如,如果有跳转到EL1的异常,请选择SP_EL1寄存器。

4、SPSR寄存器

Saved Processor State Register顾名思义是用于保存CPU状态的寄存器

跳转到EL1异常时,选择SPSR_EL1保存当前的CPU状态

5、PSTATE

如果运行ERET命令从异常返回,请将SPSR_ELn分配给PSTATE以恢复出现异常之前的CPU state

其中,n、z、c、v在EL0级别可以访问,其他必须在EL1以上或El0(undefined )之后才能运行

6、ELR寄存器

顾名思义,Exception Link Register用于存储从异常返回的地址

三、System registers

稍后补充

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。