xcode - Mac 上的 x86 汇编

标签 xcode macos x86 assembly

有谁知道有什么好的工具(我正在寻找 IDE)来在 Mac 上编写汇编。 Xcode 对我来说有点麻烦。

此外,在 Intel Mac 上,我可以使用通用 x86 asm 吗?或者有修改过的指令集吗?有关后英特尔的任何信息。

另外:我知道在 Windows 上,asm 可以在操作系统创建的模拟环境中运行,让代码认为它是在自己的专用机器上运行。 OS X 是否提供同样的功能?

最佳答案

安装任何针对基于 Intel 的 Mac 的 Xcode 版本后,您应该能够编写汇编代码。 Xcode是一套工具,其中只有一个是IDE,所以如果你不想用就不必使用它。 (也就是说,如果您发现某些特定的东西笨重,请在Apple's bug reporter处提交一个错误 - 每个错误都会进入工程。)此外,安装 Xcode 将安装 Netwide Assembler (NASM) 和 GNU Assembler (GAS);这将允许您使用您最熟悉的任何汇编语法。

您还需要查看 Compiler & Debugging Guides ,因为这些文档记录了 Mac OS X 运行的各种体系结构所使用的调用约定,以及二进制格式和加载程序的工作方式。特别是 IA-32 (x86-32) 调用约定可能与您习惯的略有不同。

要记住的另一件事是 Mac OS X 上的系统调用接口(interface)与您在 DOS/Windows、Linux 或其他 BSD 版本上可能习惯的系统调用接口(interface)不同。系统调用在 Mac OS X 上不被视为稳定的 API;相反,你总是通过 libSystem.lib。这将确保您编写的代码可以从一个操作系统版本移植到下一版本。

最后,请记住,Mac OS X 可以运行在相当广泛的硬件上 - 从 32 位 Core Single 到高端四核 Xeon。通过汇编编码,您可能不会像您想象的那样优化;在一台机器上是最佳的,在另一台机器上可能是不利的。 Apple 会定期测量其编译器,并使用“-Os”优化标志调整其输出,使其在整个产品线中表现良好,并且有大量的矢量/矩阵处理库,您可以使用这些库通过手动调整的特定于 CPU 的实现来获得高性能.

参加集会很有趣。如今,为了速度而去集会不适合胆小的人。

关于xcode - Mac 上的 x86 汇编,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5649/

相关文章:

ios - Xcode clang : error: linker command failed with exit code 1 (UNITY used for creation)

macos - 设置 MACOSX_DEPLOYMENT_TARGET 的最佳方法是什么?

python - pip 安装后 virtualenvwrapper.sh 在哪里?

assembly - ljmp(64 位模式)被#GP(0) 拒绝。为什么?

linux - 是否可以在 64 位 Linux 的同一个可执行文件中同时使用 64 位和 32 位指令?

c++ - XLW - 编译的 XLL "The file format and extension don' t 匹配”

ios - Xcodebuild无法为模拟器sdk构建框架库

ios - xcode 中的全屏图像大小和命名

ios - 现代 objective-c 语法

cocoa - cocoa 中的 HIViewSetZOrder 等效项