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

Assembly 这个宏函数中的A,T,T是什么?,assembly,macros,arm,Assembly,Macros,Arm,这个宏函数中的A,T,T是什么 使用这些有什么必要?他们到底是什么意思 我希望有人能在这方面帮助我。我猜这是ARM汇编代码,A和T宏用于选择要汇编的指令,具体取决于您是在生成(A)RM代码还是(T)humb代码: .macro add_sh rd, rn, rm, sh:vararg A add \rd, \rn, \rm, \sh T mov \rm, \rm, \sh T add

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

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


我希望有人能在这方面帮助我。

我猜这是ARM汇编代码,
A
T
宏用于选择要汇编的指令,具体取决于您是在生成(A)RM代码还是(T)humb代码:

.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

什么CPU系列和什么汇编程序?请适当地标记。我想你可能是对的。这是我以前从未见过的语法。在ARM UAL中,您应该只能够使用
add rd,rn,op2
格式,并且应该为ARM或Thumb进行适当的编译(尽管它可能会为Thumb生成两条指令)。快速参考并没有指出Thumb中不可用,但它确实指出Thumb-2中可能有32位宽。
.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