Skip to content

ARM 指令集

常用寄存器 64 位

通用寄存器

寄存器名称描述
X0函数返回值和第一个参数传递
X1-X7第二~八个参数传递
X8系统调用号
X9-X15临时寄存器
X16-X18保留寄存器,和平台相关,不同平台可能不同
X19-X28被调用者保存寄存器
X29栈指针(SP),指向栈顶
X30链接寄存器(LR),存储返回地址
X31程序计数器(PC),存储当前指令地址

常见指令

数据处理指令

  • MOV:寄存器间移动数据
  • ADD/SUB:加减运算
  • AND/ORR/EOR:位操作
  • CMP:比较指令
  • MUL/MLA:乘法和乘加

内存访问指令

  • LDR/STR:加载/存储字数据
  • LDM/STM:多寄存器加载/存储
  • PUSH/POP:栈操作指令

分支指令

  • B:无条件跳转
  • BL:带链接跳转(用于函数调用)
  • BX:切换指令集(ARM/Thumb)

协处理器指令

  • CDP:协处理器数据处理
  • LDC/STC:协处理器加载/存储
  • MCR/MRC:ARM与协处理器间数据传输

指令特点

  1. 条件执行:大多数指令可条件执行(如ADDEQ)
  2. 桶形移位器:支持操作数移位(如LSL,LSR,ASR,ROR)
  3. Thumb指令集:16位压缩指令集提高代码密度
  4. 加载/存储架构:只有加载/存储指令可访问内存