4

如何使用 GCC 编译 16 位 C 代码?我正在尝试编写一个只写“Hello World!”的平面引导加载程序。到计算机并停止。

int main(int argc, char** argv)
{
    char* value = "Hello World!";
    __asm
    {
        mov si, value
    loop:
        lodsb
        cmp al, 0
    halt:
        je halt
        mov bx, 0x0007 ; Black BG, White TXT
        mov ah, 0x0E   ; Teletype output
        int 0x10
        jmp loop
    }
 }
4

2 回答 2

6

你没有。你不能。GCC 不生成 16 位 x86 代码。

使用 Open Watcom C/C++ 或古老的 Turbo C++(1.01 版可在线免费获得)。

于 2012-05-07T01:13:31.447 回答
2

可以在 c 中编写 16 位 boot-loader 内核。您需要将 .code16 或 .code16gcc 放在文件顶部,以告诉编译器生成 16 位目标文件。

于 2014-12-30T10:29:56.087 回答