首页 > 解决方案 > 如何在 Mac OS X 上升级汇编程序

问题描述

我正在尝试编译一些使用内联汇编语言的代码。问题是代码使用了一个名为 xgetbv 的指令。这是一条 x86 指令,需要最新版本的“as”命令才能使用它。Mac OS X 带有 1.38 版的“as”命令。这是一个太旧的版本,无法识别 xgetbv 指令。我认为我的问题的解决方案是将'as'命令升级到最近的东西。我曾尝试使用tigerbrew 安装binutils,但不包括'as' 命令。然后我下载了 binutils 2.30 源代码并尝试自己构建它。事情似乎进展顺利,但是当我试图找到新的“as”命令时,没有找到。我不认为它曾经被建造过。有人知道如何在 Mac OS X 上升级“as”命令吗?

这只是需要编译的源代码的一个示例。它非常小而且不起作用。这段代码只需要编译。

在 main.c 中:

int main(int argc, char *argv[])
{
    asm volatile("xgetbv");
}

$ gcc main.c ---> 应该产生一个 ./a.out 文件。

目前这是我看到的错误:没有这样的指令:xgetbv

标签: macosassemblybinutils

解决方案


推荐阅读