nasm 只能通过-f bin
选项生成机器代码。我想在 masm 上做同样的事情,但我找不到怎么做。
它看起来总是生成的目标代码是 COFF 格式,并且似乎不是关闭它的选项。
有什么建议吗?
MASM
必须使用链接器,但仍然可以通过使用/TINY
选项跳过创建可执行标头。请参阅有关创建 COM 可执行文件的 MS 信息 - 这是一个平面二进制文件:
http://support.microsoft.com/kb/24954
正如其他人已经说过的那样,限制较少的工具。FASM是我的偏好 - 默认情况下生成平面二进制文件。:)
您可以将您的 masm 代码制作成 exe 并使用十六进制编辑器查看机器代码
你不能。但是,如果您的目标只是将一个二进制块写入文件,那么您很容易滥用汇编程序来帮助您。
用两部分编写你的汇编程序
您要作为二进制块生成的部分。给它一个开始标签 BLOCK 和结束标签 BLOCKEND。
加载可执行文件时获得控制权的部分,并在操作系统(例如,Windows)上调用以将块写入文件;完成后,它只是退出。执行此操作的实际调用实际上并不难编写。在本节中,您可能会有 50-100 行代码。