如何使用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
}
}
答案 0 :(得分:6)
你没有。你不能。 GCC不会生成16位x86代码。
使用Open Watcom C / C ++或古老的Turbo C ++(v 1.01可在线免费获取)。
答案 1 :(得分:2)
可以在c中写入16位boot-loader,kernel。您需要将.code16或.code16gcc放在文件的顶部,以告诉编译器生成16位目标文件。