如何用GCC编译16位C代码?我正在尝试编写一个刚刚写入“Hello World!”的平面引导程序。到电脑并暂停。用GCC编译的16位C代码
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
}
}
你不会有一个'main' - 你需要一个*自立*程序,你需要编写自己的链接脚本生成的东西,可以在启动时使用。查看[osdev](http://wiki.osdev.org/Expanded_Main_Page)了解一些教程。 –
顺便说一句,我正在开发一个可以生成16位代码的C编译器。见[更小的C](https://github.com/alexfru/SmallerC)。对于这个问题中提出的小程序,它可能工作得很好。蛇测试应用程序/游戏是非常多的。看一看。 –