显然,WINe 不支持 16 位 DOS 应用程序。任何人都知道如何让 MASM 英特尔风格的汇编在葡萄酒中工作?
4 回答
使用DosBox
你试过使用NASM吗?它是免费的、开源的,支持类似于 MASM 的类似 Intel 的语法 [我承认,我从未使用过],并且几乎适用于所有 x86 平台,包括 Windows、Linux、BSD 等。
在您的典型 Linux 发行版或 BSD 端口树上,它可能已经打包并准备就绪。(只要你apt-get
,,pkgadd
或其他什么。)
使用 DOSEMU 在 Linux/unix 上运行 16 位的 dos 程序
您的问题的解决方案可能就在那里:
http
://www.japheth.de/JWasm.html
这是一个 MASM 语法兼容的开源汇编器(接近 100%,包括最奇怪的 MASM 寻址语法案例,结构化编程伪操作、宏等)。
它可以生成 Intel OMF、MS Coff(32 位和 64 位)、Elf(32 位和 64 位)、Bin 和 DOS MZ。
它以 DOS、Windows 和 Linux 二进制文件的形式存在。
它甚至可以构建到 OS/2、FreeBSD。
因此,您将拥有最大数量的汇编程序和目标二进制文件组合,包括在本机 Linux 下发生的所有事情。
如果您编译为 16 位代码,则必须在 16 位环境中执行它,这意味着您已经得到了建议之一。
但是您也可以将 16 位语法编译为 32 位模式代码,具体取决于您要执行的操作。因此,您可能能够在 32 位模式下执行 16 位算法,在 32 位环境中本地执行,就像 x86 架构允许的那样。不过,生成的代码会更大,因为汇编器会在每条 16 位指令之前生成 16 位转义码,但如果只是测试 16 位代码的逻辑,这也可以。
我希望这对你有意义。如果没有,请要求更多...