OSをつくろうpart4
■ このスレッドは過去ログ倉庫に格納されています
0082ひげぽん
NGNGsecondboot.asmにてgdt関連の設定を行っています。
dw gdt_end - gdt0 - 1 ; gdt limit
dd gdt0 + 0x100 * 16 ; start adderess
プロテクトモード移行後
インラインアセンブラで
asm volatile("sgdt %0\n"
: /* no output */
: "m" (gdtr)
);
_sys_printf("gdtr.limit = %d\n", gdtr.limit);
_sys_printf("gdtr.base = %d\n", gdtr.base);
とやってみると
gdtr.limit = 31
gdtr.base = 0
と表示されます。
limitは意図どおりの値なのですが
baseの値が0というのが違和感があります。
何か大きな勘違いをしてそうで・・・
■ このスレッドは過去ログ倉庫に格納されています