mirror of
https://github.com/JannisHeydemann/BoredOS.git
synced 2026-05-30 02:16:58 +00:00
29 lines
517 B
NASM
29 lines
517 B
NASM
global gdt_flush
|
|
global tss_flush
|
|
|
|
section .text
|
|
|
|
gdt_flush:
|
|
lgdt [rdi] ; Load GDT from the pointer passed in RDI
|
|
|
|
mov ax, 0x10 ; 0x10 is the offset in the GDT to data segment
|
|
mov ds, ax
|
|
mov es, ax
|
|
mov fs, ax
|
|
mov gs, ax
|
|
mov ss, ax
|
|
|
|
; Far jump to update CS
|
|
push 0x08 ; 0x08 is the offset to the code segment
|
|
lea rax, [rel .flush]
|
|
push rax
|
|
retfq
|
|
|
|
.flush:
|
|
ret
|
|
|
|
tss_flush:
|
|
mov ax, 0x28 ; 0x28 is the offset in the GDT to the TSS
|
|
ltr ax
|
|
ret
|