ARM文档翻译(六)----指令篇(四)

ASR(寄存器)

算术右移(寄存器)。

这个指令是ASRV的别名。

等效指令为ASRV Wd, Wn, Wm

语法

ASR Wd, Wn, Wm ;32位

ASR Xd, Xn, Xm ;64位

注释

Wd

32位目标通用寄存器。

Wn

32位第一个源通用寄存器。

Wm

32位第二个源通用寄存器,它的低5位保存着0~31的移位量。

Xd

64位目标通用寄存器。

Xn

64位第一个源通用寄存器。

Xm

64位第二个源通用寄存器,它的低6位保存着0~63的移位量。

运算

算术右移指令,将一个寄存器的值右移一个可变位数,高位用符号位填充,并将结果写入目标寄存器。第二个源寄存器除以数据大小(即64或者32)得到的余数定义了第一个源寄存器右移的位数。

1
Rd = ASR(Rn, Rm)	;R代表 W 或者 X
ASR(立即数)

算术右移(立即数)。

这条指令是SBFM的别称。

这条指令的等价指令是SBFM Wd, Wn, #shift, #31

语法

ASR Wd, Wn, #shift ;32位

ASR Xd, Xn, #shift ;64位

注释

Wd

32位目标通用寄存器。

Wn

32位源通用寄存器。

shift

取决于指令

  • 32位通用寄存器

移位量,范围为0~31。

  • 64位通用寄存器

移位量,范围为0~63。

Xd

64位目标通用寄存器。

Xn

64位源通用寄存器。

运算

算术右移指令(立即数),将一个寄存器的值右移立即数的值的位数,高位用符号位填充,并将结果写入目标寄存器。

1
Rd = ASR(Rn, shift)	;R代表 W 或者 X。