如何让masm生成机器代码?

时间:2013-01-10 06:18:43

标签: assembly nasm masm

nasm只能通过-f bin选项生成机器代码。我想在masm上做同样的事情,但我找不到。

看起来始终生成的目标代码是COFF格式,并且似乎不是关闭它的选项。

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

MASM必须使用链接器,但仍可以使用/TINY选项跳过创建可执行标头。请参阅有关创建COM可执行文件的MS信息 - 这是一个平面二进制文件:

http://support.microsoft.com/kb/24954

正如其他人已经说过的那样,限制工具的限制较少。 FASM是我的偏好 - 默认情况下生成一个平面二进制文件。 :)

答案 1 :(得分:0)

你做不到。但是如果你的目标只是将一个二进制块写入文件,你很容易滥用汇编程序来帮助你。

用两部分编写汇编程序

  • 要作为二进制块生成的部分。给它一个起始标签,BLOCK和结束标签BLOCKEND。

  • 加载可执行文件时获得控制权的部分,并在OS(例如Windows)上调用该块以将该块写入文件;完成后,它就会退出。这样做的实际调用实际上并不难写;你可能会在本节中拥有50-100行代码。

答案 2 :(得分:0)

您可以将您的masm代码转换为exe并使用十六进制编辑器查看机器代码