【问题标题】:What is A, T, T in this macro function?这个宏函数中的 A、T、T 是什么?
【发布时间】:2014-07-10 06:41:40
【问题描述】:
.macro  add_sh          rd,  rn,  rm,  sh:vararg
A       add             \rd, \rn, \rm, \sh
T       mov             \rm, \rm, \sh
T       add             \rd, \rn, \rm
.endm

这个宏函数中的A、T、T是什么?

使用这些有什么需要?他们到底是什么意思?

我希望有人能帮助我解决这个问题。

【问题讨论】:

  • 什么 CPU 系列和什么汇编程序?请适当标记。

标签: assembly macros arm


【解决方案1】:

我猜这是 ARM 汇编代码,AT 宏用于根据您是构建 (A)RM 代码还是 (T)humb 代码来选择要汇编的指令:

.macro  add_sh          rd,  rn,  rm,  sh:vararg
A       add             \rd, \rn, \rm, \sh          ;; ARM - just one instruction
T       mov             \rm, \rm, \sh               ;; Thumb - these two instructions
T       add             \rd, \rn, \rm               ;;         ...
.endm

【讨论】:

  • 我认为你可能是对的。这是我以前从未见过的语法。在 ARM UAL 中,您应该能够使用 add rd, rn, op2 格式,并且它应该为 ARM 或 Thumb 正确编译(尽管它可能会为 Thumb 生成两条指令。快速参考并没有指出它在 Thumb 中不可用,但是它确实说它在 Thumb-2 中可能是 32 位宽。
猜你喜欢
  • 2022-06-17
  • 1970-01-01
  • 2019-08-08
  • 2022-10-13
  • 1970-01-01
  • 1970-01-01
  • 2012-04-07
  • 2012-02-13
相关资源
最近更新 更多