0

このコードは -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 回線のロックが解除されていると確信しています...

何が起こっているのかわかりません...

4

0 に答える 0