用GCC编译的16位C代码

时间:2012-05-06 23:48:13

标签: c gcc compilation 16-bit

如何使用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
    }
 }

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:2)

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