zhangleierli
驱动小牛
驱动小牛
  • 注册日期2007-01-31
  • 最后登录2017-05-24
  • 粉丝1
  • 关注0
  • 积分3分
  • 威望158点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:10130回复:9

CR3寄存器里存的是物理地址还是虚拟地址?

楼主#
更多 发布于:2008-01-04 18:28
刚刚看了undocument NT 里面描述的不清楚。
我的理解是CR3 存放的是页目录的物理地址。系统发生进程切换时,会把相应的页目录的物理地址存入CR3寄存器 ??,并把4K的页目录内容映射到0xC0300000 ??4K的页目录里存放的是页表的物理地址?然后再根据这些物理地址取出相应的4K大的页表,依次映射到0xC0000000---0xC03FFFFF ??
这些都是我的理解,正确吗?
rulary
驱动牛犊
驱动牛犊
  • 注册日期2007-01-12
  • 最后登录2012-04-27
  • 粉丝0
  • 关注0
  • 积分43分
  • 威望26点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-02-12 13:56
我想也是物理地址,因为页目录就是要用作虚拟地址到物理地址转换的;如果是虚拟地址,
系统首先要把该地址转换成物理地址才能找到物理地址中的页目录,而这个转换又要通过
CR3...
matrixnull
驱动牛犊
驱动牛犊
  • 注册日期2007-08-04
  • 最后登录2009-09-29
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-02-01 00:15
Leonsoft
驱动小牛
驱动小牛
  • 注册日期2003-05-08
  • 最后登录2012-08-11
  • 粉丝1
  • 关注0
  • 积分21分
  • 威望281点
  • 贡献值1点
  • 好评度103点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-01-29 10:31
物理地址。。。
I will do the best with what the God gave me.
rangzh
驱动小牛
驱动小牛
  • 注册日期2005-04-24
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望150点
  • 贡献值0点
  • 好评度115点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-01-13 20:25
根据线形地址到物理地址的转换过程,CR3应该是物理地址,否则分页怎么搞
boly81
驱动小牛
驱动小牛
  • 注册日期2004-06-25
  • 最后登录2012-06-08
  • 粉丝0
  • 关注0
  • 积分490分
  • 威望73点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-01-11 10:45
了解这个要看cpu的spec,而不是nt undocument,否则会把人看晕
boly81
驱动小牛
驱动小牛
  • 注册日期2004-06-25
  • 最后登录2012-06-08
  • 粉丝0
  • 关注0
  • 积分490分
  • 威望73点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-01-11 10:44
应用程序和一般驱动访问的是虚拟地址
但是OS里负责页面映射的程序访问页目录表的时候肯定使用物理地址,页表可能也是,而这两部分应该不会被映射到别的应用或驱动的虚拟地址空间的

CR3的说明,amd是在这个文档里
AMD64 Technology AMD64 Architecture Programmer’s Manual Volume 2
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24593.pdf

intel的应该在System Programming Guide里
http://www.intel.com/products/processor/manuals/index.htm
tiamo
VIP专家组
VIP专家组
  • 注册日期2002-02-26
  • 最后登录2018-01-09
  • 粉丝17
  • 关注4
  • 积分50分
  • 威望142点
  • 贡献值1点
  • 好评度40点
  • 原创分2分
  • 专家分15分
  • 原创先锋奖
  • 社区居民
7楼#
发布于:2008-01-11 01:22
cr3里面的是物理地址不是虚拟地址
zhangleierli
驱动小牛
驱动小牛
  • 注册日期2007-01-31
  • 最后登录2017-05-24
  • 粉丝1
  • 关注0
  • 积分3分
  • 威望158点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2008-01-10 23:02
引用第1楼boly81于2008-01-10 19:02发表的  :
页目录和页表可能不会映射成逻辑地址吧
正确答案要看cpu的spec,到intel,amd的网站上下载吧


cpu的spec是什么?  
windows开启了分页机制后,访问的所有的地址都是虚拟地址,所以要把页目录和页表也映射到虚拟地址空间。忘了是看那本书上说的了。
boly81
驱动小牛
驱动小牛
  • 注册日期2004-06-25
  • 最后登录2012-06-08
  • 粉丝0
  • 关注0
  • 积分490分
  • 威望73点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2008-01-10 19:02
页目录和页表可能不会映射成逻辑地址吧
正确答案要看cpu的spec,到intel,amd的网站上下载吧
游客

返回顶部