diff --git a/asm/x86-unknown-none/thunk.asm b/asm/x86-unknown-none/thunk.asm index 0e47f9dba2118f7e789c1ee216d2a80094586846..16a3597aab79f14b525c831234ac7112065c15f7 100644 --- a/asm/x86-unknown-none/thunk.asm +++ b/asm/x86-unknown-none/thunk.asm @@ -32,6 +32,9 @@ thunk: ; save esp mov [.esp], esp + ; load gdt + lgdt [gdtr] + ; far jump to protected mode 16-bit jmp gdt.pm16_code:.pm16 @@ -121,6 +124,9 @@ USE16 ; save registers pushad + ; load gdt (BIOS sometimes overwrites this) + lgdt [gdtr] + ; restore cr0, will enable protected mode mov eax, [.cr0] mov cr0, eax