Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
is causing a "General Protection Fault" (0xd), according to the wiki this exception is thrown when a code segment is used improperly but as far as I understand if the GDT is not set segmentation is not enabled. What's going on? I cannot really understand
PS: I'm using GRUB2 as bootloader with Multiboot2 specification and I'm in protected mode
LolzDEV wrote:as far as I understand if the GDT is not set segmentation is not enabled.
Segmentation is always enabled.
LolzDEV wrote:What's going on?
The CPU is unable to use the segment descriptor corresponding to segment selector 8 as a code segment.
Maybe the selector is wrong, and your code segment needs a different selector.
Maybe you've made a mistake defining the descriptor and it's not a valid code segment.
Maybe you've made a mistake loading the GDTR and the CPU isn't reading your GDT.
It's hard to say for sure without more information. For example, post a link to your git repository, or provide a register dump using QEMU's "-d int" option.