ARM文档翻译(五)----指令篇(三)

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