用于实模式内核开发的 16 位 C 编译器?

Jos*_*uso 6 c x86 kernel real-mode 16-bit

我已经尝试了几乎所有 C 编译器的每种设置,但我还没有找到一个可以将 C 编译成适合实模式内核开发的 Intel x86 代码的 C 编译器。我不需要任何解释为什么你应该使用保护模式;我只需要知道编译一个没有操作系统依赖性的 16 位独立二进制文件需要哪个 C 编译器(以及运行它的设置(如果需要),等等。只是实模式下的裸机,仅此而已。

我很确定这不是 [16 bit C code for real mode kernel]: 16 bit C code for real mode kernel的重复,因为他们接受切换到保护模式作为答案,并且我明确指出结果必须有效对于实模式。

gra*_*rry -5

C 不是一种设计用于在实模式下运行的语言,因此不幸的是不允许 16 位编译。

使用 NASM 汇编或任何其他汇编语言来获得您想要的。这是一个小小的学习曲线,但一旦掌握了它,您对计算机功能和 OSDev 的理解就会飞速发展。

我建议查看这个 wiki 和论坛,里面有志同道合的人和教程 http://wiki.osdev.org/Main_Page

祝你好运!

  • “C 不是一种设计用于在实模式下运行的语言,因此不幸的是它不允许 16 位编译。” - 嗯什么?您认为 C 语言是什么时候创建的,在什么计算机上创建的?C 的哪些特性使其与实模式不兼容? (7认同)