【发布时间】:2016-12-30 13:18:57
【问题描述】:
Clang 似乎默认采用 GNU 汇编语法。
如何使用 Clang 编译使用 ARM 语法如 this (directives) 和 this (instructions) 的程序集文件?
【问题讨论】:
-
您可能无法更改指令。如果你想要 armasm 指令,你需要使用 ARM 的 armasm。
-
@RossRidge,这里他们说如何在 Clang 中选择 x86 的语法:stackoverflow.com/questions/10990018/…。 ARM没有类似的东西吗?或者,如果您的意思是重构程序集文件以将指令从 ARM 更改为 GNU 语法 - 不,我不想这样做。
-
这只会改变指令语法,不会改变使用的指令。如果您想使用您在帖子中链接的 armasm 指令,您可能需要使用其他支持这些指令的汇编程序,例如
armasm本身。 -
它可能已经是了。除了ARM,我不知道任何语法。但是它有两种变体,旧的 ARM 语法和更新的统一语法 (UAL)。我相信clang只支持后者。如果您想要旧形式,您可能还必须使用不同的汇编程序。
-
有旧的和统一的,但是每个指令的确切细节在 arm 汇编器和 gnu 之间一直是不可移植的(好吧,gnu 汇编器总是设法破坏某些东西,使其在特定的 cmets 中不可移植)。许多指令和诸如 mrs/msr 指令格式的东西,是/曾经被 arm 工具或 gnu 工具或两者都敏感。您确实必须针对一种汇编语言。
标签: assembly syntax arm clang armasm