什么类型的ARMv8指令是LSL、LSR、ASR&;罗?

什么类型的ARMv8指令是LSL、LSR、ASR&;罗?,arm,instruction-set,Arm,Instruction Set,我正在学习Armv8的基础知识,对换档操作属于哪一类感到困惑 数据处理说明包括: 和,EOR、SUB、RSB、ADD、ADC、SBC、RSC、TST、TEQ、CMP、CMN、ORR、MOV、BIC和MVN 分支机构流程: B、 基本法 转移过程: STR、STRB、LDR和LDRB 我无法确定LSL、LSR、ASR&ROR指令属于哪一类。我假设它不是乘法范畴,但我想如果它是这样的话,那是有意义的,因为移位与乘以二的幂是一样的?文档将它们列为数据处理操作,不在顶部的列表中,但当您深入研究数据处理操

我正在学习Armv8的基础知识,对换档操作属于哪一类感到困惑

数据处理说明包括:

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

分支机构流程:

B、 基本法

转移过程:

STR、STRB、LDR和LDRB


我无法确定LSL、LSR、ASR&ROR指令属于哪一类。我假设它不是乘法范畴,但我想如果它是这样的话,那是有意义的,因为移位与乘以二的幂是一样的?

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

您可以按照自己的意愿对指令进行分类,对于“数据处理指令”的构成,实际上没有正式的定义或者它与其他类型有什么区别。ARMv8架构参考手册确实将它们列在了数据处理下。这有点像那些愚蠢的辩论问题,问墨西哥玉米卷是否属于“三明治”的范畴。如果你看一下说明书,我想你会看到LSL,LSR,etc是记录为数据处理指令的MOV指令。是的,这是一个愚蠢的问题,但同时ARM现在一直致力于将指令分类为类型。在我正在查看的文档中,它确实清楚地显示了数据处理下的ASR、LSL等。(无论是否编码为mov)