问题描述
我正在学习 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 的伪指令。