AND(立即数)
位与指令(立即数)。
语法
AND Wd|WSP, Wn, #imm ;32位
AND Xd|SP, Xn, #imm ;64位
注释
Wd|WSP
32位目标通用寄存器或者栈指针。
Wn
32位源通用寄存器。
imm
位掩码(立即数)。
Xd|SP
64位目标通用寄存器或者栈指针。
Xn
64位源通用寄存器。
运算
源通用寄存器的值和立即数的值按位与,并将结果写入目标通用寄存器(或者栈指针)。
1 | Rd = Rn & imm ;R代表 X 或者 W。 |
AND(寄存器移位)
位与指令(寄存器移位)。
语法
AND Wd, Wn, Wm{, shift #amount} ;32位
AND Xd, Xn, Xm{, shift #amount} ;64位
注释
Wd
32位目标通用寄存器。
Wn
第一个32位源通用寄存器。
Wm
第二个32位源通用寄存器。
amount
取决于指令变量:
- 32位通用寄存器
移位量,范围为0~31,默认为0。
- 64位通用寄存器
移位量,范围为0~63,默认为0。
Xd
64为目标通用寄存器。
Xn
第一个64位源通用寄存器。
Xm
第二个64位源通用寄存器。
shift
应用于第二个源寄存器的可选移位操作,可以是LSL、LSR、ASR或ROR中的一个。
运算
将一个寄存器的值和另一个可选移位操作的寄存器的值按位与,并将结果写入目标寄存器。
1 | Rd = Rn & shift(Rm,amount) ;R代表 W 或者 X |
ANDS(立即数)
位与指令(立即数),设置标志位。
这条指令通常被用作TST(立即数)。
语法
ANDS Wd, Wn, #imm ;32位
ANDS Xd, Xn, #imm ;64位
注释
Wd
32位目标通用寄存器。
Wn
32位源通用寄存器。
imm
立即数位掩码。
Xd
64位目标通用寄存器。
Xn
64位源通用寄存器。
运算
将源寄存器的值和立即数的值按位与运算,并将结果写入目标寄存器。且根据结果更新条件标志位。
1 | Rd = Rn & imm ;R代表 W 或者 X |
ANDS(寄存器移位)
按位与(寄存器移位),设置标志位。
这个指令通常被用作TST(寄存器移位)。
语法
ANDS Wd; Wn{, shift #amount} ;32位
ANDS Xd; Xm{, shift #amount} ;64位
注释
Wd
32位目标通用寄存器。
Wn
32位第一个源通用寄存器。
Wm
32位第二个源通用寄存器。
amount
取决于指令
- 32位通用寄存器
移位量,范围为0~31,默认是0。
- 64位通用寄存器
移位量,范围为0~64,默认是0。
Xd
64位目标通用寄存器。
Xn
64位第一个源通用寄存器。
Xm
64位第二个源通用寄存器。
shift
被附加到最后一个操作数的可选的移位操作,默认是LSL,可以是LSL、LSR、ASR或者ROR中的一个。
运算
将一个寄存器的值与另一个可选移位操作的寄存器的值按位与运算,再将结果写入目标寄存器,并根据结果更新条件标志位。
1 | Rd = Rn & sgift(Rm,amount) ;R代表 W 或者 X |