算术运算
算术运算就是像 ADD SUB MUL … 等加减乘除运算,也是很好理解的指令
如:
add x0, x1, x2; // 把 x1 + x2 = x0 这样一个操作。
sub sp, sp, 0x30; // 把 sp - 30 存入sp.
cmp x11, #4; // 相当于 subs xzr, x11, #4.
// 如果 x11 - 4 == 0, 那么状态寄存器NZCV.Z = 1
// 如果 x11 - 4 < 0, 那么 NZCV.N = 1
NZCV是状态寄存器中存的几个状态值,分别代表运算过程中产生的状态,其中:
- N, negative condition flag,一般代表运算结果是负数
- Z, zero condition flag, 运算结果为0
- C, carry condition flag, 无符号运算有溢出时,C=1。
- V, oVerflow condition flag 有符号运算有溢出时,V=1。