ARMv8通用寄存器与特殊寄存器说明

本文详细介绍了ARMv8架构下的寄存器系统,包括通用寄存器、特殊寄存器和系统寄存器的功能及作用,并阐述了CPU的内部结构组成。
ARMv8寄存器说明

1 通用寄存器

  1. ARMv8提供了31个通用寄存器 R0~R30;
  2. 在AArch32架构,通用寄存器w0~w30是32bit宽度;
  3. 在AArch64架构,通用寄存器x0~x30是64bit宽度;

2 特殊寄存器

  1. SP (stack pointer register) 指向当前栈的指针;AArch64架构为SP AArch32架构为WSP;

  2. PC (program counter) 指向当前指令的地址;连接寄存器LR,保存子程序的返回地址; AArch32架构中LR使用R14、SP使用R13 AArch64架构中LR使用x30;

  3. PSTATE (process state) 对进程状态信息的集合,包括以下寄存器集合:条件寄存器NZCV、异常屏蔽寄存器DAIF、SP选择寄存器SPSEL、异常等级寄存器CurrentEL,所有指令集都可以通过PSTATE反馈状态;此外,当发生异常时,这些标志位信息将被保存到对应异常级别的SPSR寄存器中;

    可通过mrs指令可以读取寄存器的值、msr指令向寄存器写值;

  4. System registers,系统寄存器为执行控制、状态和一般系统配置提供支持,大多数系统寄存器在EL0是不可访问的,但可以在系统初始化时配置一些系统寄存器允许在EL0级别执行的程序访问,任何从EL0到禁用访问权限的系统寄存器的访问都会导致指令表现为UNDEFINED;

    EL0可以访问的寄存器有:

    • Cache ID registers The CTR_EL0 and DCZID_EL0 registers provide implementation parameters for EL0 cache management sup

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值