enter protected mode
This commit is contained in:
@@ -1,8 +1,47 @@
|
|||||||
bits 16
|
[org 0x7c00]
|
||||||
org 0x7c00
|
[bits 16]
|
||||||
|
|
||||||
|
CODE_SEG equ gdt_code - gdt_start
|
||||||
|
|
||||||
|
cli
|
||||||
|
lgdt [gdt_descriptor]
|
||||||
|
mov eax, cr0
|
||||||
|
or eax, 1
|
||||||
|
mov cr0, eax
|
||||||
|
jmp CODE_SEG:start_protected_mode
|
||||||
|
jmp $
|
||||||
|
|
||||||
|
gdt_start:
|
||||||
|
gdt_null:
|
||||||
|
dd 0x0
|
||||||
|
dd 0x0
|
||||||
|
|
||||||
|
gdt_code:
|
||||||
|
dw 0xffff
|
||||||
|
dw 0x0
|
||||||
|
db 0x0
|
||||||
|
db 0b10011010
|
||||||
|
db 0b11001111
|
||||||
|
db 0x0
|
||||||
|
|
||||||
|
gdt_data:
|
||||||
|
dw 0xffff
|
||||||
|
dw 0x0
|
||||||
|
db 0x0
|
||||||
|
db 0b10010010
|
||||||
|
db 0b11001111
|
||||||
|
db 0x0
|
||||||
|
|
||||||
|
gdt_end:
|
||||||
|
|
||||||
|
gdt_descriptor:
|
||||||
|
dw gdt_end - gdt_start - 1
|
||||||
|
dd gdt_start
|
||||||
|
|
||||||
|
[bits 32]
|
||||||
|
start_protected_mode:
|
||||||
|
jmp $
|
||||||
|
|
||||||
halt:
|
|
||||||
jmp halt
|
|
||||||
|
|
||||||
times 510-($-$$) db 0
|
times 510-($-$$) db 0
|
||||||
db 0x55, 0xaa
|
dw 0xaa55
|
||||||
Reference in New Issue
Block a user