cmp eax, 0x80000001 ; Compare the A-register with 0x80000001.
mov eax, 0x80000001
cpuid
- jb .not64bitCapable
+ jb .not64bitCapable
test edx, 1<<29
jz .not64bitCapable
[section .data]
[global gGDT]
+[global gGDTPtr]
gGDT:
dd 0,0
dd 0x00000000, 0x00209A00 ; 0x08: 64-bit Code
[global gInitialPML4]
gInitialPML4: ; Covers 256 TiB (Full 48-bit Virtual Address Space)
dd gInitialPDP - KERNEL_BASE + 3, 0 ; Identity Map Low 4Mb
- times 512-1-4 dq 0
+ times 512-4-1 dq 0
dd gInitialPML4 - KERNEL_BASE + 3, 0 ; Fractal Mapping
dq 0
dq 0
gHighPDP: ; Covers 512 GiB
times 510 dq 0
- dq 0 + 0x143 ; 1 GiB Page from zero
+ ;dq 0 + 0x143 ; 1 GiB Page from zero
+ dd gInitialPD - KERNEL_BASE + 3, 0
dq 0
gInitialPD: ; Covers 1 GiB