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

发布于 2024-12-13 06:16:59 字数 172 浏览 1 评论 0原文

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

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

I wrote some assembly code for x86, and wanted to assemble it into plain binary file (not Mach-O) by just using Mac's default assembler (the 'as'). After several googlings and tries, I failed.

Though I know how to do it with NASM (using option: -f binary), I don't want to do so. Because my code was written in and I was used to AT&T syntax.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

朦胧时间 2024-12-20 06:16:59

使用 objcopy(它是 binutils 的一部分,就像 as 一样),并将 --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 并删除 x86-64: 对于 32 位版本)

Use objcopy (which is part of binutils as is as) with --output-target set to binary.

as --64 test.s -o test.o
objcopy -O binary test.o test.bin

And to disassemble the output:

objdump -D -m i386:x86-64:intel -b binary test.bin

(Substitute --32 and remove x86-64: for 32-bit versions)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文