DirBase的地址的疑惑
《软件调试》答疑
DirBase的地址的疑惑
roben
2008-12-23, 13:52 下午
原书175页中提到页目录是按4KB边界对齐,所以DriBase的低12位总是0。但是我在xp的sp2和sp3,还有vista RTM都试过发现DirBase的值基本上低12位都不是0。一直想不出来是为什么,能否指点一下?
谢谢
Re: DirBase的地址的疑惑
格蠹老雷
2008-12-23, 14:42 下午
这是因为启用了PAE,此时CR3寄存器(PCB的DirectoryTableBase[0]字段,也就是DirBase),使用高27位来表示所谓的页目录指针表的基地址,页目录指针表最多只有4个表项,要求是32位对齐的。关于PAE情况下的地址翻译,请参见下面的文章:
http://advdbg.org/blogs/advdbg_system/articles/627.aspx
Re: DirBase的地址的疑惑
roben
2008-12-23, 16:39 下午
太谢谢张老师