; This file is written with Intel ASM Syntax. [GLOBAL load_gdt] ; Allows the C code to call gdt_flush(). [EXTERN gp] load_gdt: ; Get the pointer to the GDT, passed as a parameter. lgdt [gp] ; Load the new GDT pointer mov ax, 0x10 ; 0x10 is the offset in the GDT to our data segment mov ds, ax ; Load all data segment selectors mov es, ax mov fs, ax mov gs, ax mov ss, ax jmp 0x08:flush ; 0x08 is the offset to our code segment: Far jump! flush: ret