数据处理指令(一)
1、概述
本文介绍数据处理指令及其指令形式,包括算术运算、逻辑运算、移位运算、位域操作以及乘法和除法指令。数据处理指令对通用寄存器中的值执行操作,其基本语法通常由两个源操作数和一个目标寄存器组成,如下所示:
mneumonic Rd, Rn, operand2
任何给定指令的操作数取决于正在执行的指令类型。数据处理指令总是首先列出目标寄存器,然后是指令的输入。在本章中,您将看到目标寄存器(对于 A32/T32 指令)表示为 Rd,对于 A64 指令则表示为 Xd 或 Wd。输入寄存器(对于 A32/T32 指令)表示为 Rm、Rn 或 Ra,对于 A64 指令则表示为 Xn 或 Xm。由于各种指令的语法包含的组件比源寄存器和目标寄存器更多,因此您将在每节开头看到用于特定指令组或类别的语法符号的概述。
读写汇编语言时,首先给出指令操作码(即操作),然后是目标寄存器,最后是源操作数。在以下示例中,指令 ADD 将两个 64 位源寄存器值 X1 和 X2 相加,并将 64 位结果存储在寄存器 x0 中。
add x0, x1, x2 ; x0 = x1 + x2
在 A64 中,算术指令可以根据结果设置算术标志。有些指令始终隐式地执行此操作,例如比较和测试指令 CMP 和 TST。其他指令仅在明确请求时才执行此操作。这些指令带有 s