quark/src/kernel/arch/i686/gdt.asm

32 líneas
450 B
NASM
Original Vista normal Històric

2022-06-18 01:53:28 +02:00
[bits 32]
global i686_gdt_load
i686_gdt_load:
; New call frame
push ebp
mov ebp, esp
; Load GDT
mov eax, [ebp + 8]
lgdt [eax]
; Reload code segment
mov eax, [ebp + 12]
push eax
push .reload_cs
retf
.reload_cs:
; Reload data segments
mov ax, [ebp + 16]
2022-06-18 02:25:11 +02:00
mov ds, ax
2022-06-18 01:53:28 +02:00
mov es, ax
mov fs, ax
mov gs, ax
mov ss, ax
; Restore old call frame
mov esp, ebp
2022-06-18 02:25:11 +02:00
pop ebp
2022-06-18 01:53:28 +02:00
ret