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

4:)如何判断两个线性地址是否在同一物理页

看其物理地址除了最后三位以外其他的位数都相等,就是同一物理页

posted @ 2020-10-18 15:01  PYozo_free  阅读(161)  评论(0编辑  收藏  举报