PDE_PTE(上)
1:)上节博客有说到这里不说了
2:)为变量x再映射一个线性地址,并通过这个新地址读取x的值
思路:首先分配一个4096大小的空间,在到栈中分配一个局部变量,再把局部变量变为malloc大小的空间,在修改物理页为这里面的。
首先写出测试代码
// Phy_Memory.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include<stdlib.h> int main(int argc, char* argv[]) { int t=10; int e[1024]; printf("t:%x",&t); printf("\ne:%x",e); for(int i=0;i<1024;i++) { *(e+i)=0; } printf("%x\n",t); getchar(); //printf("Hello World!\n"); return 0; }
运行到第三个printf时下断点,如图
然后拆分地址
查看e的pte
在查看t的pte,并修改为e的pte
这是t的pte所指地址已经和e的pte所指地址一样,在来看看输出,单步运行,输出0
3:)10-10-12分页模式物理内存能够识别的最多范围是多少?
4GB,因为2^10*2^10*2^12