简介
在32位的系统10-10-12分页机制,是通过把一个线性地址拆分为10位(PDT),10位(PTT)和12位(属性)计算找到程序真正读写的物理地址。
关键词
线性地址:程序所使用的地址是都虚拟地址,线性地址就是要操作的地址的段寄存器加偏移量。
PDT(页目录表),PDE(页目录表项),PTT(页表),PTE(页表项),属性用来该内存的属性,是否可读可写。
程序运行时,CR3寄存器存储的是一个物理地址,指向一个物理页,该页为PDT表,PDE指向PTT表,PTE指物理页。
结构图
找物理地址
先把一个要读写32位的线性地址拆分为三部分,前10位,中间10位,后12位,把CR3寄存器的地址加上前10位*4的值,该地址指向PDE,PDE的值指向PTT(该值的后10位为属性,通过值计算PTT时要置0),PTE的地址为中间10位*4加上PDE的值,PTE的值就是指向内存真正的物理地址
-
PDE = CR3 + (32-22位)*4
-
PTE = PDE + (22-12位)*4