首页 > 解决方案 > 在 Xcode 中编译 x86_64 程序集

问题描述

在一个学校项目上工作,我试图弄清楚如何在运行最新 Xcode 更新(12.0.1)的 Xcode 上用汇编代码编译一个简单的 c 程序。我们应该使用 AT&T 语法,这就是我发现在 Xcode 中使用的语法。

这是c代码:

#include <stdio.h>
extern int MaxOfThree(int, int, int);
int main()
{
    printf("The largest value among 1, -4 och -7 is %d\n", MaxOfThree(1,-4,-7));
    return 0;
}

汇编代码:

.text
.global MaxOfThree 
MaxOfThree:
    cmpl %esi, %edi
    cmovl %esi, %edi
    cmpl %edx, %edi
    cmovl %edx, %edi
    movl %edi, %eax
ret

我得到的错误是:

error: unexpected token in directive
.global MaxOfThree MaxOfThree:
                   ^

我还收到另一个程序的另一个错误,说 x86_64 语法不允许使用绝对寻址。怎么了?

标签: cxcodeassembly

解决方案


推荐阅读