'Page table mapping

    //=======   init page
.align 8

.org    0x1000

__PML4E:

    .quad   0x102007
    .fill   255,8,0
    .quad   0x102007
    .fill   255,8,0

.org    0x2000

__PDPTE:
    
    .quad   0x103003
    .fill   511,8,0

.org    0x3000

__PDE:

    .quad   0x000083    
    .quad   0x200083
    .quad   0x400083
    .quad   0x600083
    .quad   0x800083
    .quad   0xe0000083      /*0x a00000*/
    .quad   0xe0200083
    .quad   0xe0400083
    .quad   0xe0600083
    .quad   0xe0800083      /*0x1000000*/
    .quad   0xe0a00083
    .quad   0xe0c00083
    .quad   0xe0e00083
    .fill   499,8,0

The code maps 16MB memory from physical address 0xe0000000 to linear address 0xa00000. Why? And what's meaning of 0xe0000083/0xe0800083 these represents? I've read intel manual, 0xe0000083 this how to correspond to PTE layout? Appreciate!

enter image description here layout.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source