LSL、LSR、ASR 和 ROR 是什么类型的 ARMv8 指令?

问题描述

我正在学习 Armv8 的基础知识,但对移位操作属于什么类别感到困惑。

数据处理指令包括

AND、EOR、SUB、RSB、ADD、ADC、SBC、RSC、TST、TEQ、CMP、CMN、ORR、MOV、BIC 和 MVN。

分支进程:

B,BL

转移流程:

STR、STRB、LDR 和 LDRB

我无法弄清楚 LSL、LSR、ASR 和 ROR 指令属于哪个类别。我假设它不是乘法类别,但我想如果它是,那会有意义,因为移位与乘以 2 的幂相同?

解决方法

文档将它们列为数据处理操作,而不是在顶部的列表中,但是当您深入了解数据处理操作组的描述时,它会将它们列在那里。对于 aarch32,我认为它们只是带有移位操作数的 mov 指令,对于 aarch64,我不确定它们是它们自己的东西还是只是 mov 的伪指令。