C 源代码、Watcom 编译器和 EMU8086

C source code, Watcom Compiler and EMU8086

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

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

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

如果您使用 -d1-d2 选项重新编译 main.c 以将额外的调试数据放入 main.obj 文件中,那么您可以使用反汇编程序的 -s 选项,使汇编语言列表中穿插注释,显示来自 main.c.

的原始 C 源代码

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

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