42 lines
474 B
NASM
42 lines
474 B
NASM
.intel_syntax noprefix
|
|
|
|
.rodata
|
|
gdt:
|
|
.null:
|
|
dq 0x0
|
|
.code:
|
|
dw 0xffff
|
|
dw 0x0000
|
|
db 0x00
|
|
db 10011010b
|
|
db 11001111b
|
|
db 0x00
|
|
.data:
|
|
dw 0xffff
|
|
dw 0x0000
|
|
db 0x00
|
|
db 10010010b
|
|
db 11001111b
|
|
db 0x00
|
|
.end:
|
|
.descriptor:
|
|
dw .end - gdt - 1
|
|
dd gdt
|
|
|
|
.text
|
|
.global gdt_load
|
|
|
|
gdt_load:
|
|
push eax
|
|
lgdt [gdt.descriptor]
|
|
jmp 0x08:.loaded_cs
|
|
.loaded_cs:
|
|
mov ax, 0x10
|
|
mov ds, ax
|
|
mov es, ax
|
|
mov fs, ax
|
|
mov gs, ax
|
|
mov ss, ax
|
|
pop eax
|
|
ret
|