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

标签 c x86 kernel 16-bit real-mode

这个问题在这里已经有了答案:





Looking for 16-bit c compiler for x86 [closed]

(4 个回答)


5年前关闭。




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

我很确定这不是 [实模式内核的 16 位 C 代码] 的副本:16 bit C code for real mode kernel因为他们接受切换到保护模式作为答案,我明确指出结果必须适用于实模式。

最佳答案

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

使用 NASM 汇编或任何其他汇编语言来获得你想要的。它有点学习曲线,但是一旦它点击,您就会了解计算机的功能和 OSDev 将如何飞越屋顶。

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

祝你好运!

关于c - 用于实模式内核开发的 16 位 C 编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39502902/

相关文章:

CUDA 记录并等待事件不起作用?

c++ - 释放内存问题

assembly - 关于AT&T语法汇编中的cmp/jg、jle等

datetime - 程序集 A86 - 获取并显示时间

kernel - 如何使触摸传感器在 Linux 内核中工作?

c - 是否建议使用 strcmp 或 _tcscmp 比较 Unicode 版本中的字符串?

c - C 中的哪个标准库函数将零字节复制到堆栈?

c - 确定函数参数起始地址

linux - 如何调试 Linux 内核中的页面错误

linux-kernel - 安装 vmware 工具 : not recognizing path to 3. 8.0-19-generic 内核文件