réplica de
https://github.com/Arnau478/quark.git
synced 2024-05-19 20:36:31 +02:00
44 líneas
697 B
NASM
44 líneas
697 B
NASM
global i686_pmm_paging_enable
|
|
i686_pmm_paging_enable:
|
|
[bits 32]
|
|
; New call frame
|
|
push ebp
|
|
mov ebp, esp
|
|
|
|
mov eax, cr0
|
|
cmp byte [esp + 4], 0
|
|
jg .enable
|
|
jmp .disable
|
|
.enable:
|
|
or eax, 0x80000000 ; Set bit 31
|
|
jmp .done
|
|
.disable:
|
|
and eax, 0x7FFFFFFF ; Clear bit 31
|
|
.done:
|
|
mov cr0, eax
|
|
|
|
; Restore old call frame
|
|
mov esp, ebp
|
|
pop ebp
|
|
ret
|
|
|
|
global i686_pmm_is_paging
|
|
i686_pmm_is_paging:
|
|
[bits 32]
|
|
mov eax, cr0
|
|
and eax, 0x80000000
|
|
ret
|
|
|
|
global i686_pmm_load_pdbr
|
|
i686_pmm_load_pdbr:
|
|
[bits 32]
|
|
mov eax, [esp + 4]
|
|
mov cr3, eax
|
|
ret
|
|
|
|
global i686_pmm_get_pdbr
|
|
i686_pmm_get_pdbr:
|
|
[bits 32]
|
|
mov eax, cr3
|
|
ret
|