我为 x86 编写了一些汇编代码,并希望仅使用 Mac 的默认汇编器(“as”)将其组装成纯二进制文件(不是 Mach-O)。经过几次谷歌搜索和尝试,我失败了。
虽然我知道如何使用 NASM(使用选项:-f 二进制),但我不想这样做。因为我的代码是用 AT&T 语法编写的,而且我习惯了 AT&T 语法。
最佳答案
使用 objcopy
(与 as
一样是 binutils 的一部分),将 --output-target
设置为 binary
。
as --64 test.s -o test.o
objcopy -O binary test.o test.bin
并反汇编输出:
objdump -D -m i386:x86-64:intel -b binary test.bin
(替换
--32
并删除 32 位版本的 x86-64:
)关于macos - 是否可以仅在 Mac OS X 上使用 GNU Assembler 生成纯二进制文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7967729/