.globl set_gdt .type set_gdt,%function gdtr: .word 0 .int 0 set_gdt: .fnstart mov 4(%esp), %eax mov %eax, 2($gdtr) mov 8(%esp), %ax mov %ax, $gdtr lgdt $gdtr ret .fnend .globl reload_segments .type reload_segments,%function reload_segments: .fnstart jmp 0x08:reload_CS .fnend reload_CS: mov 0x10, %ax mov %ax, %ds mov %ax, %es mov %ax, %fs mov %ax, %gs mov %ax, %ss ret