例外処理
Rev.1を表示中。最新版はこちら。
例外処理(i386の場合) [例外のエントリポイント] locore.s::alltraps user_trap()もしくはkernel_trap()を呼ぶ [例外処理] user_trap() - User Modeで例外が発生した場合 <作成中> kernel_trap() - Kernel Modeで例外が発生した場合 <作成中> [例外ベクタテーブルの設定] ディスクリプタテーブルの作成 idt.s .data Entry(idt) .text EXCEPTION(0x00,t_zero_div) <== IDTのエントリを作成してalltrapsへの EXCEP_SPC(0x01,t_debug) ジャンプルーチンを作る INTERRUPT(0x02) /* NMI */ EXCEP_USR(0x03,t_int3) EXCEP_USR(0x04,t_into) EXCEP_USR(0x05,t_bounds) EXCEPTION(0x06,t_invop) : : IDTRの設定はstart.s::spag_startで行なう。