Этот код работает с флагом -O, но не работает без флага -O, а также не работает с флагами -O2 и -O3:
void putc(char c)
{
static char *video = 0xb8000;
*video = c;
//video+=2;
}
void puts(char * s)
{
for(;*s;) putc(*s++);
}
void start_kernel(void)
{
putc('a');
for(;;);
}
также этот код ничего не отображает без флагов, с флагом -O и флагом -O2, хотя он отличается на одну строку после записи символа в буфер:
void putc(char c)
{
static char *video = 0xb8000;
*video = c;
video+=2;
}
void puts(char * s)
{
for(;*s;) putc(*s++);
}
void start_kernel(void)
{
putc('a');
for(;;);
}
Я использую GRUB для загрузки своего "ядра", поэтому я почти уверен, что линия A20 разблокирована и ...
Я не знаю, что происходит ...