1

如何让 Watcom 编译器(在 64 位主机上运行的分叉版本 2.0 测试版)在 ASM 文件中输出 8086 汇编源代码?从命令提示符运行wcc -0 main.c只会生成 OBJ 文件。

附带说明一下,我的主要任务是将 C 源代码转换为可以使用 EMU8086 运行的汇编代码(而不是编写实际的汇编代码)。我希望 Watcom 生成的 ASM 文件无需修改(复制粘贴)即可在 EMU8086 中运行。

4

1 回答 1

1

我没有看到让 Watcom 编译器直接生成 ASM 文件的方法,但您应该能够使用 Watcom 反汇编器 ( wdis) 从编译器生成的目标文件生成汇编列表。在这种情况下,您将运行类似wdis -l main读取main.obj并生成一个名为的文件,该文件main.lst包含一个汇编语言列表。

如果您使用-d1or-d2选项重新编译 main.c 以将额外的调试数据放入 main.obj 文件中,那么您可以使用反汇编程序的-s选项让汇编语言列表与显示原始 C 源代码的注释穿插在 .obj 文件中main.c

要让反汇编器省略描述性注释并只给出一个可以作为 Watcom 汇编器源文件接受的简单反汇编,请给-a反汇编器选项。此选项还将导致反汇编程序的输出被写入main.asm而不是main.lst. 对不起,我不知道这个输出是否会被 EMU8086 直接消耗。

这在 Open Watcom C/C++ 用户指南C/C++ 工具用户指南中都有讨论,链接自http://www.openwatcom.com/doc.php

于 2018-05-13T06:14:05.033 回答