このコードは -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 フラグを使用すると、文字をバッファに書き込んだ後に 1 行だけ異なります。
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 回線のロックが解除されていると確信しています...
何が起こっているのかわかりません...