是否可以在 Mac OS X 上仅使用 GNU 汇编器生成纯二进制文件?

Kil*_*yte 4 macos assembly abi

我为 x86 编写了一些汇编代码,并希望仅使用 Mac 的默认汇编程序(“as”)将其汇编成纯二进制文件(不是 Mach-O)。经过几次谷歌搜索和尝试,我失败了。

虽然我知道如何使用 NASM 来做到这一点(使用选项:-f 二进制),但我不想这样做。因为我的代码是用 AT&T 语法编写的并且我已经习惯了。

use*_*653 5

使用objcopy(它是 binutils 的一部分as--output-target设置为binary

as --64 test.s -o test.o
objcopy -O binary test.o test.bin
Run Code Online (Sandbox Code Playgroud)

并反汇编输出:

objdump -D -m i386:x86-64:intel -b binary test.bin
Run Code Online (Sandbox Code Playgroud)

(替换--32并删除x86-64:32 位版本)