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
|
||||
db 0x55, 0xaa
|
||||
dw 0xaa55
|
||||
Reference in New Issue
Block a user