【问题标题】:C source code, Watcom Compiler and EMU8086C 源代码、Watcom 编译器和 EMU8086
【发布时间】:2018-05-12 07:01:51
【问题描述】:

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

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

【问题讨论】:

    标签: c emu8086 watcom


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢您的帮助!我完全按照您的指示(或者更确切地说,我认为我做到了),但正如您所预测的那样,EMU8086 不能直接消耗结果。
    猜你喜欢
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    相关资源
    最近更新 更多