【问题标题】:What type of ARMv8 instructions are LSL, LSR, ASR & ROR?什么类型的 ARMv8 指令是 LSL、LSR、ASR 和 ROR?
【发布时间】:2023-03-10 08:42:01
【问题描述】:

我正在学习 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 指令属于哪个类别,我无法在 ARMv8 参考手册中找到任何明确的答案。

我假设它不是乘法类别,但我想如果它是有意义的,因为移位与乘以 2 的幂相同?

【问题讨论】:

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

标签: arm instruction-set


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-11-19
    • 2021-06-03
    • 2020-09-18
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    相关资源
    最近更新 更多