乍一看,PocketDOS 似乎是基于 Intel 80186 仿真的。 80186 不支持 32 位保护模式,因此您甚至无法在其上运行 DJPP(这是 DOS 的 GCC 实现),因为这需要 DOS 扩展器 (DPMI) 来支持 32 位保护模式代码。 80186 本质上是集成了片上外设(例如中断和 DMA 控制器)的 8086。
我认为你无法做到这一点。 您将需要一个 16 位实模式 DOS 编译器。
直接在 ELKS 下,你不能 - 因为据我所知(2023 年),没有编译器移植到 ELKS。
但是,您可以使用用于构建 ELKS 的开发工具(目前是 gcc-ia16 的分支;以前是 bcc)在另一台 32 位计算机(也可能在 64 位计算机上)上开发 ELKS 程序。
现在有用于 ELKS 原生 C 代码编译的 8086 工具链: https://github.com/rafael2k/8086-toolchain