在 Xcode 10.3 中编写英特尔语法

Writing Intel Syntax in Xcode 10.3

我正在 Xcode 中编写一个 C 项目,我想 link 一个单独的汇编文件与该项目一起编译。但我需要用 Intel 语法编写程序集,因为我发现 AT&T 语法绝对怪诞。

不幸的是,Apple 的默认 Clang 编译器不喜欢我在 Intel 中编写汇编代码,而更喜欢 AT&T。是否有我可以更改的设置以允许我的单独的汇编文件以 Intel 语法编写?

例如,这个 assembles:

.text  
.global _func  
func:  
mov %rdx,%rax  
ret

但这并不assemble

.text  
.global _func  
_func:  
mov rax,rdx  
ret

编译器在后一个示例中抛出错误。

_func 正在从 C 代码调用。

#include <stdio.h>
void func(void);
int main(int argc, const char * argv[]) {
    func();
    return 0;
}

澄清一下,我不是在编写内联汇编。

如果你想使用asm intel语法。 只需在 asm 文件的开头添加 .intel_syntax noprefix

.intel_syntax noprefix
.text  
.global _func  
_func:  
mov rax,rdx  
ret