diff --git a/src/arch/x86_64/boot.asm b/src/arch/x86_64/boot.asm index 3e8e594..98155c2 100644 --- a/src/arch/x86_64/boot.asm +++ b/src/arch/x86_64/boot.asm @@ -12,6 +12,9 @@ start: call set_up_page_tables call enable_paging + ; load the 64-bit GDT + lgdt [gdt64.pointer] + ; print `OK` to screen mov dword [0xb8000], 0x2f4b2f4f hlt @@ -147,3 +150,11 @@ p2_table: stack_bottom: resb 64 stack_top: + +section .rodata +gdt64: + dq 0 ; zero entry + dq (1<<43) | (1<<44) | (1<<47) | (1<<53) ; code segment +.pointer: + dw $ - gdt64 - 1 + dq gdt64