c - 在 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 语法不允许使用绝对寻址。怎么了?
解决方案
推荐阅读
- php - 在管理员 prestashop 1.7.6 中将组合参考代码更改为常规参考代码
- encoding - 运行文本摘要代码时出现编码问题
- php - 如何在 PHP 中使用 call_user_func
- python - 查找最多 5 个号码的 LCM
- java - Java8:在 forEach 之外更改变量的引用
- javascript - Mongoose 上的 Post 请求与 Get 请求不匹配
- sql - 错误代码“子查询返回超过 1 个值 [...]”
- angular - 如何编写单元测试用例以使用角度重置单选按钮值
- laravel - 日历事件上的多个开始日,并且不显示完整日历上的事件
- azure - 如何在 ARM 模板中使用 o365 连接器部署逻辑应用程序