2012-02-07 28 views
1

即時嘗試使我自己的內核.... 我的內核通過grub加載......我認爲創建了我所需的gdt ...所以我沒有創建gdt我自己和繼續創建IDT ...idt沒有gdt使用grub

現在,當我零異常我的故障處理方法不叫....

我在我的ASM文件LIDT嘗試鴻溝,設置條目進入我的IDT,並推後所有的寄存器,我打電話給我的故障處理程序,這是從來沒有被稱爲! 是否可以使用grub的默認gdt創建自己的idt? 或者我是否也需要創建gdt ... 源代碼 - https://github.com/pawangogna/pkern

P.S.我正在關注本教程http://www.osdever.net/bkerndev/Docs/idt.htm

+1

哪裏除以0,實際上會發生什麼?三錯? – 2012-02-07 10:54:16

+0

現在我甚至已經編寫了gdt的代碼,但它仍然不起作用:(... idt代碼位於idt.c,gdt.c中的gdt代碼中,start.asm包含idt和gdp指針的加載。 ..isr.c是我在哪裏加載idt條目(32例外) – Pawan 2012-02-07 15:59:50

+0

哦廢話...我寫了我= 5;然後劃分我5而不是零除...我感覺像一個傻瓜..感謝您指出它......我浪費了一整天的時間!!!謝謝@Alex – Pawan 2012-02-07 16:16:38

回答

2

代碼中沒有除0。