summaryrefslogtreecommitdiff
path: root/kernel/src/arch/x86_64/cpu/gdt.asm
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src/arch/x86_64/cpu/gdt.asm')
-rw-r--r--kernel/src/arch/x86_64/cpu/gdt.asm20
1 files changed, 20 insertions, 0 deletions
diff --git a/kernel/src/arch/x86_64/cpu/gdt.asm b/kernel/src/arch/x86_64/cpu/gdt.asm
new file mode 100644
index 0000000..796e892
--- /dev/null
+++ b/kernel/src/arch/x86_64/cpu/gdt.asm
@@ -0,0 +1,20 @@
+global load_gdt
+load_gdt:
+ lgdt [rdi]
+ mov ax,0
+ mov ds,ax
+ mov es,ax
+ mov fs,ax
+ mov gs,ax
+ mov ss,ax
+ pop rdi
+ mov rax,0x08
+ push rax
+ push rdi
+ retfq
+
+global load_tss
+load_tss:
+ mov ax,0x28
+ ltr ax
+ ret \ No newline at end of file