从80386开始,Intel 处理器处理 4KB的页。
32位线性地址分为 10 10 12 三部分。 directory table offsetcr3控制寄存器中存放正使用的页目录的物理地址。
一个页目录项与页表项结构相同。 其中有20位Field 包含页框的物理地址。
当从cr3 中获取到页目录地址时,取线性地址的高10位取页目录(4KB,每一个32位占4字节,共1024个页表)中指向的页表项地址(20位的Field)
使用取出来的物理地址得到页表地址,线性地址的中间10位,取页表内偏移量,取含有数据的页的物理地址。
最终使用线性地址的12位取页内数据偏移量。
页目录项指向的页表中有4096的物理地址,也就是对应1024个页表项,刚好与线性地址的10位相符。
而页表项指向的项含有4096的物理地址,偏移量需要线性地址的12来取offset
cr4寄存器,PSE标记,可使得扩展分页与常规分页共存。
cr0 的PG = 0时,线性地址被解析为物理地址。