5日目 その3
ひさびさのHariboteOS。
今回はGDTとIDTの初期化だけど、特にここで書くようなことはないなぁ。
ちょっと目を引いたのはload_gdtr(load_idtr)がスタック上にgdtr(idtr)を作ってそれを読み込んでいたことかな。
ちなみにgasで書くとこう。
.globl load_gdtr // スタック上にgdtrを作ってロード load_gdtr: // void load_gdtr(int limit, int addr) movw 4(%esp), %ax // limit movw %ax, 6(%esp) lgdt 6(%esp) ret .globl load_idtr load_idtr: // void load_idtr(int limit, int addr) movw 4(%esp), %ax // limit movw %ax, 6(%esp) lidt 6(%esp) ret