2

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

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

例如,这组装:

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

但这不会组装

.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;
}

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

4

1 回答 1

3

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

.intel_syntax noprefix
.text  
.global _func  
_func:  
mov rax,rdx  
ret
于 2019-08-22T01:40:41.553 回答