16-bit C code compiled with GCC
-
06-06-2021 - |
Вопрос
How do I compile 16-bit C code with GCC? I am trying to write a flat bootloader that just writes "Hello World!" to the computer and halts.
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
}
}
Решение
You don't. You can't. GCC doesn't generate 16-bit x86 code.
Use Open Watcom C/C++ or the ancient Turbo C++ (v 1.01 is freely available online).
Другие советы
It is possible to write 16 bit boot-loader , kernel in c . You need to put .code16 or .code16gcc at the top of the file to tell the compiler to generate 16 bit object file .
Не связан с StackOverflow