about summary refs log tree commit diff
path: root/src/bootloader/utils/gdt.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/bootloader/utils/gdt.s')
-rw-r--r--src/bootloader/utils/gdt.s33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/bootloader/utils/gdt.s b/src/bootloader/utils/gdt.s
new file mode 100644
index 0000000..58883fd
--- /dev/null
+++ b/src/bootloader/utils/gdt.s
@@ -0,0 +1,33 @@
+gdt_start:
+  gdt_null:
+  dq 0
+
+  gdt_code:
+  dw 0FFFFh
+  dw 0
+
+  db 0
+  db 10011010b
+  db 11001111b
+  db 0
+
+  gdt_data:
+  dw 0FFFFh
+  dw 0
+
+  db 0
+  db 10010010b
+  db 11001111b
+  db 0
+
+  gdt_end:
+
+  gdt:
+   dw gdt_end - gdt_start - 1
+   dd gdt_start
+
+load_GDT:
+    cli
+    lgdt [gdt]
+    sti
+    ret