Armv8 - 64架构与核心编程入门
1. Armv8 - 64架构基础
Armv8 - 64架构的AArch64执行状态具有诸多特点。它支持64位宽的寄存器,并采用64位内存寻址。其包含31个通用寄存器,可搭配64位(Xn)或32位(Wn)宽的操作数使用,此外还有单独的栈指针(SP)、程序计数器(PC)以及PSTATE.NZCV条件标志。
1.1 PSTATE与条件标志
AArch64执行状态中没有离散的应用程序状态寄存器(APSR)或当前程序状态寄存器(CPSR),而是定义了一个名为PSTATE的抽象实体。对于应用程序而言,PSTATE中最重要的元素是N(负)、Z(零)、C(进位)和V(溢出)条件标志。程序可以利用算术、按位逻辑和比较指令来更新这些条件标志,还能借助PSTATE NZCV条件标志进行条件分支操作。
1.2 浮点和SIMD寄存器
AArch64处理单元包含32个128位宽的SIMD/FP寄存器,命名为V0 - V31。这些寄存器可用于标量浮点、打包整数和打包浮点运算。每个SIMD/FP寄存器可以作为8位、16位、32位、64位或128位宽的寄存器进行访问。与AArch32不同,在AArch64 SIMD中,编号较高的寄存器不包含编号较低的寄存器。此外,这些寄存器还可以作为64位或128位宽的打包整数或浮点元素向量进行访问。
| 寄存器类型 | 描述 |
|---|---|
| FPCR | 64位宽的寄存器,包含浮点舍入为零模式 |
超级会员免费看
订阅专栏 解锁全文
1346

被折叠的 条评论
为什么被折叠?



