x86体系的计算机,经典的启动模式是BIOS先初始化硬件,然后把启动盘的MBR加载到0x7c00处并跳转执行。这时候,系统还处于16位实模式的状态,有非常多的文章和书籍介绍如何编写16位实模式汇编代码并且转入32位保护模式,此时也就顺理成章地可以使用C语言。但是,如果是否可以直接在实模式下使用C语言呢?

利用gcc的16位代码生成功能,答案是肯定的,以下以一个HelloWorld程序为例进行讲解。

阅读全文 »