|
|
@ -12,6 +12,9 @@ start:
|
|
|
|
call set_up_page_tables
|
|
|
|
call set_up_page_tables
|
|
|
|
call enable_paging
|
|
|
|
call enable_paging
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; load the 64-bit GDT
|
|
|
|
|
|
|
|
lgdt [gdt64.pointer]
|
|
|
|
|
|
|
|
|
|
|
|
; print `OK` to screen
|
|
|
|
; print `OK` to screen
|
|
|
|
mov dword [0xb8000], 0x2f4b2f4f
|
|
|
|
mov dword [0xb8000], 0x2f4b2f4f
|
|
|
|
hlt
|
|
|
|
hlt
|
|
|
@ -147,3 +150,11 @@ p2_table:
|
|
|
|
stack_bottom:
|
|
|
|
stack_bottom:
|
|
|
|
resb 64
|
|
|
|
resb 64
|
|
|
|
stack_top:
|
|
|
|
stack_top:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
section .rodata
|
|
|
|
|
|
|
|
gdt64:
|
|
|
|
|
|
|
|
dq 0 ; zero entry
|
|
|
|
|
|
|
|
dq (1<<43) | (1<<44) | (1<<47) | (1<<53) ; code segment
|
|
|
|
|
|
|
|
.pointer:
|
|
|
|
|
|
|
|
dw $ - gdt64 - 1
|
|
|
|
|
|
|
|
dq gdt64
|
|
|
|