- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如何让 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
关于C 源代码、Watcom 编译器和 EMU8086,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50303711/
搜索有关 Open Watcom 链接器、内联汇编和 C 编译器的手册和文档,因为我发现官方手册不够好。 我特别关注 C 和汇编。 感谢您提供指向教程、书籍等的链接。 最佳答案 回到过去,Watcom
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 6 年前。 Improve this qu
我有一些代码可以写入和读取 VGA 的 I/O 端口。我正在尝试在内联汇编器中实现工作 C 代码功能。我正在使用 Open Watcom 2.0 并针对 DOS 16 位进行编译。 为了写入 VGA
如何让 Watcom 编译器(在 64 位主机上运行的分支版本 2.0 beta)在 ASM 文件中输出 8086 汇编源代码?从命令提示符运行 wcc -0 main.c 只生成 OBJ 文件。 附
一个普遍的问题。 我正在为 Sybase SQL Anywhere 10 开发。出于向后兼容性的原因,我们几乎所有的存储过程都是用 Transact-SQL 编写的。 使用 T-SQL 代替 Watc
我得到了一个遗留的fortan IV程序,该程序需要为一个遗留的编程语言类进行编译,并且被指示使用http://www.openwatcom.org/index.php/Downloads中的Watc
我在NASM中编写了一个引导加载程序,它将64kb的程序数据从磁盘加载到内存中,从地址0060:0000 [SEG:OFF]开始。我通过在程序集(NASM)中编写一些代码并将其放入磁盘来测试了我的项目
我使用的是Open Watcom IDE V1.9,目标环境是DOS-16bit,镜像类型是exe。 objective-c pu 是 80386。 这是我的源代码: #include void g
是否可以使用 Open Watcom C 编译器(而非 C++)执行 #define NORETURN(x) 宏? 基于 the fine manual我有这个文件test.c: #include
我在我的操作系统 Win XP 上安装了编译器“Open watcom”,我在 Virtual Box 下运行该操作系统。 我以自动模式安装了程序:完整包,并自动更改自动执行和配置文件,其中环境变量所
今天,我了解到 MASM 中的 SEG 运算符默认返回 GROUP 的地址而不是相关表达式的 SEGMENT 的地址,并且有一些选项和方法可以覆盖它。 由于我目前在 Open Watcom 1.9/1
我正在尝试生成 16 位 DOS 可执行文件,但使用的是 gcc 编译器。所以我使用的是古老的 gcc-4.3 ia16 端口。我制作了我的构建的 Docker 镜像:https://registry
我有一个具有以下声明样式的 header : extern struct xvimage *allocimage(char * name, int32_t rs, int32_t cs, int32_
我需要生成一个远跳转指令来跳转到另一个ISR(中断服务例程)。我正在开发一个 32 位 FreeDOS 应用程序。 阅读 OW 手册( cguide.pdf 和 clr.pdf )后,我找到了两种成功
对于此 C 源代码: int add(int a, int b) { return a + b; } ,用于 8086 的 Watcom C 编译器 (wcc -s -ms -os -0 prog.c
我想通过 Watcom C 编译器 生成一个 16 位可执行 BINARY RAW 格式。类似于在实模式下运行的没有任何 header 的 EXE 文件。 我使用Large内存模型,因此代码段和数据段
使用 Windows 7、Matlab R2011a(32 位)和 Open Watcom 1.8 版,我正在尝试编译调用 Fortran 代码的 C MEX 文件。 按照 Matlab 网站 (su
我是一名优秀的程序员,十分优秀!