寻找x86的16位c编译器[关闭]

问题描述 投票:11回答:4

我正在努力将uc / OS-II从DOS移植到x86(实模式)。我需要:

  1. 用于生成实模式16位x86汇编的编译器
  2. 用于将生成的程序集组装到目标文件中的汇编程序
  3. 将目标文件链接在一起并输出可执行文件的链接器(原始二进制,COFF,PE或ELF格式都可以)
  4. 没有调用任何DOS服务(int 21h)的标准库只依赖于BIOS服务。

我想知道是否有任何工具链可以做到这一点。

compiler-construction x86 real-mode
4个回答
5
投票

看看FreeDOS项目。他们有developer tools,包括编译器,汇编器和链接器。但是,您可能必须修改标准库,以便它使用BIOS调用而不是int 21h。


1
投票

16位编译器?其中有几个在这里提到:

Is there a C compiler that targets the 8086?

通常它们用于学术练习,所以如果你瞄准教育机构,你也可以找到很多例子:

http://www.google.com.sg/search?q=site%3Aedu+C+compiler+8086


1
投票

在以前的工作中,我们有一个基于在实模式x86平台上运行的uc / OS的项目。我们使用的是TopSpeed C,而不是更着名的Borland或Microsoft编译器,因为TopSpeed C是当时唯一可用且可行的volatile。在构建uc / OS时您非常需要。 Turbo C和Microsoft C(我认为它的QuickC也是)错误地编译了对volatile变量的访问 - 通常是缓存寄存器中的值和类似的破坏。

但是,你很难掌握TopSpeed C.它的汇编语法是......唯一的。 (我认为它基于Modula-2或其他东西;它最终与MASM / TASM / nasm非常不同,你可能会比它更熟悉100倍。)


-1
投票

检查任何引导加载程序项目,例如GRUB。很明显,他们也需要你提到的一切。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.