ARM 寄存器

ARM 寄存器
一、64 位 ARMv8 寄存器
ARMv8 体系结构设计了整数通用寄存器和浮点寄存器,同时配置有若干专
用寄存器和大量系统寄存器。
1、 通用寄存器
64 位 ARM 执行状态 AArch64 提供 31 个 64 位通用寄存器。每个寄存器可以
作为 64 位访问,名为 X0~X30;也可以只进行低 32 位的访问,名为 W0~W30。
其中 X30 用于过程调用的连接寄存器 LR(Link Register)。
2、 专用寄存器
1)零值寄存器
AArch64 并没有一个称为 X31(W31)的寄存器。
64 位零值寄存器 XZR、32 位零值寄存器 WZR。当 ZR 作为源操作数,读得数
值为零;当 ZR 作为目的寄存器,写入的结果被丢弃。大部分(不是所有)指令
都可以使用零值寄存器。
2)程序计数器 PC
AArch64 有一个 64 位的程序计数器 PC,保存当前指令的主存地址。
3) 堆栈指针 SP
AArch64 的堆栈指针 SP 是一个 64 位寄存器,其低 32 位可以通过 WSP 名称
访问。每个异常层有对应的堆栈指针寄存器,加_ELn(n=0~3)区别。
3、处理状态 PSTATE
AArch64 的各个处理器状态字段分散保存,可以独立访问,但集中在一起
被称为处理状态 PSTATE(Process State)。AArch64 在 EL0 层,主要访问 4 个
条件标志位,利用条件标志进行条件分支。条件标志位有负数 N、零 Z、进位 C
和溢出 V 标志。
4、系统寄存器
系统寄存器保存系统配置和程序状态,提供对系统监控、处理器控制等的
支持,主要有系统控制寄存器、调试寄存器、基准定时寄存器、性能监控寄存
器等等。大多数系统寄存器在 EL0 层不能访问。
5. SIMD 和浮点寄存器 SIMD 和浮点寄存器有 32 个 128 位寄存器,取名 V0~V31,每个都可以多种
形式访问,具有多种形式的名称。
二、32 位 ARMv7 寄存器
1、编号 R0-R15 的 16 个 32 位寄存器,,其中 R13 是堆栈指针 SP,R14 是接
寄存器 LR,R15 是程序计数器 PC。
2、程序状态寄存器、中断屏蔽寄存器、特殊寄存器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值