Date: 2018.8.21
1、参考
https://developer.arm.com/products/architecture/instruction-sets
https://developer.arm.com/docs/ddi0487/a
2、ARM64位架构分析
ARM64位采用ARMv8架构,64位操作长度,对应处理器有Cortex-A53、Cortex-A57、Cortex-A73、iphones的A7和A8等。
AARCH64是全新32位固定长度指令集,支持64位操作数的新指令,大多数指令可以具有32位或64位参数。
ARM64位架构有两种主要的执行状态:
- AArch64 ——64 位执行状态,包括该状态的异常模型、内存模型、程序员模型和指令集支持
- AArch32 ——32 位执行状态,包括该状态的异常模型、内存模型、程序员模型和指令集支持
这些执行状态支持三个主要指令集:
- A32(或 ARM):32 位固定长度指令集,通过不同架构变体增强部分 32 位架构执行环境现在称为 AArch32。
- T32 (Thumb) 是以 16 位固定长度指令集的形式引入的,随后在引入 Thumb-2 技术时增强为 16 位和 32 位混合长度指令集。部分 32 位架构执行环境现在称为 AArch32。
- A64:提供与 ARM 和 Thumb 指令集类似功能的 32 位固定长度指令集。随 ARMv8-A 一起引入,它是一种 全新的AArch64 指令集。
ARM ISA 不