A poorly written OS for the x86 arch. (WIP)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
eOS/kernel/enable_paging.asm

15 lines
609 B

3 years ago
[bits 32] ; 32-bit mode
PAGING_ENABLE equ 0x80000001
PAGE_DIRECTORY equ 0x8000 ; TODO: change me to something good
enable_paging_registers:
mov eax, PAGE_DIRECTORY ; Move the address of the page register (page directory) into eax
; (Using eax as a middle-man register)
mov cr3, eax ; Put the address into the cr3 register (required by the MMU)
mov eax, cr0 ; eax as a middle-man register (again)
or eax, PAGING_ENABLE ; perform the OR operation on eax (ex: 0b01 or 0b10 = 0b11)
; This is needed to enable paging (set the flag as "enabled")
mov cr0, eax ; Move it into cr0 to finally enable paging