[xboard]ARM汇编基础学习
文章目录
-
-
- 汇编
- arm寄存器
-
- 1.1 状态寄存器
- 1.2 通用寄存器
- 常用命令
-
- 2.1 算术指令
-
- 2.1.1 ADD
- 2.1.2 ADR 取地址操作
- 2.1.3 SUB
- 2.1.4 MULL
- 2.1.5 DIV
- 2.2 逻辑指令
-
- 2.2.1 移动操作
- 2.2.2移位操作
- 2.2.3 比较操作
- 2.2.4 位操作
- 2.3 跳转指令
-
- 2.3.1
- 2.4数据处理指令
-
- 2.4.1 MRS 和 MSR
- 2.4.2 LDM
- 2.4.3 STM
- 2.4.4 LDR与STR
- 2.5常用的协处理器
- 示例解析
-
汇编
汇编语言的源头是其所对应的CPU架构的指令集(Instruction Set Architecture, ISA)
不同的CPU,采用不用的架构,当前主流的架构有ARM、RISC-V、X86,PowerPC等,
对于ARM架构,其对应的汇编手册为:ARM Architecture Reference Manual
由于 ARM 架构有多个版本,所以也存在多个版本的 ARM ARM。例如:
- ARMv7-A/R: 用于经典的 Cortex-A 和 Cortex-R 系列处理器(32位)。这是 U-Boot 和旧版 Linux 内核最常接触的。
- ARMv8-A: 用于 Cortex-A53, A57, A72, A76 等以及更新的内核(支持 64位 AArch64 和 32位 AArch32 状态)。这是现代嵌入式 Linux 和 Android 设备的绝对主流。
- 还有针对 M 系列(微控制器)的 ARMv6-M, ARMv7-M, ARMv8-M 手册。
每个版本,其章节基本都按如下编排:
- Part A:应用级架构(指令集、寄存器模型)
- Part B:系统级架构(异常处理、内存管理)
- Part C:架构扩展(如虚拟化、安全扩展)
以DDI0406C-D_ARMv7AR_ARM为例子