Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 使用grub的没有gdt的idt_C_Assembly_Kernel - Fatal编程技术网

C 使用grub的没有gdt的idt

C 使用grub的没有gdt的idt,c,assembly,kernel,C,Assembly,Kernel,我正在尝试制作我自己的内核。。。。 我的内核是通过grub加载的…我想grub会创建我所需的gdt…所以我没有自己创建gdt,而是继续创建idt 现在,当我尝试零除异常时,我的错误处理方法没有被调用 我在asm文件中有lidt,将条目设置到idt中,在按下所有寄存器后,我调用从未调用过的错误处理程序! 是否可以使用grub的默认gdt创建自己的idt? 或者我也需要创建gdt。。。 源代码- 另外,我正在学习本教程。代码中没有0除法。代码中没有0除法。0除法在哪里,实际发生了什么?三重错误?现在

我正在尝试制作我自己的内核。。。。 我的内核是通过grub加载的…我想grub会创建我所需的gdt…所以我没有自己创建gdt,而是继续创建idt

现在,当我尝试零除异常时,我的错误处理方法没有被调用

我在asm文件中有lidt,将条目设置到idt中,在按下所有寄存器后,我调用从未调用过的错误处理程序! 是否可以使用grub的默认gdt创建自己的idt? 或者我也需要创建gdt。。。 源代码-


另外,我正在学习本教程。

代码中没有0除法。

代码中没有0除法。

0除法在哪里,实际发生了什么?三重错误?现在我甚至已经为gdt编写了代码,但仍然不起作用:(…idt代码在idt.c中,gdt代码在gdt.c中,start.asm包含idt和gdp指针的加载…isr.c是我加载idt条目的地方(32个例外)哦,糟糕…我写了i=5;然后我把i除以5而不是除以0…我觉得自己像个傻瓜…谢谢你指出这一点…我浪费了一整天在上面!!!谢谢@Alex保护模式IDT零除法处理的最小示例:0除法在哪里?实际发生了什么?三重错误?现在我甚至已经为gdt和它仍然不起作用:(…idt代码在idt.c中,gdt代码在gdt.c中,start.asm包含idt和gdp指针的加载…isr.c是我加载idt条目的地方(32个例外)哦,糟了…我写了i=5;然后将i除以5,而不是除以0…我感觉自己像个傻瓜…谢谢你指出这一点…我浪费了一整天的时间!!!谢谢@Alex保护模式IDT零除法处理的最小示例: