diff options
| author | 2026-08-18 12:15:05 +0200 | |
|---|---|---|
| committer | 2026-08-18 12:15:05 +0200 | |
| commit | 132d3236bb884433bf94e961f6d32264e0334aec (patch) | |
| tree | 06638976b06f019ea4037175ff228f8271057c44 /kernel/segments.s | |
Diffstat (limited to 'kernel/segments.s')
| -rw-r--r-- | kernel/segments.s | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/kernel/segments.s b/kernel/segments.s new file mode 100644 index 0000000..77e6502 --- /dev/null +++ b/kernel/segments.s @@ -0,0 +1,21 @@ + +global asm_reload_segments + +section .text +align 4 + +asm_reload_segments: + push 0x08 + lea rax, [rel .reload_cs] + push rax + retfq + +; 0z10 is 16 bytes in decimal, so this should reload the segment correctly +.reload_cs: + mov ax, 0x10 + mov ds, ax + mov es, ax + mov fs, ax + mov gs, ax + mov ss, ax + ret
\ No newline at end of file |
