分页机制

z15881328993 2009-12-27 10:21:38
我看了一网文分页机制,如下:
PTE_Address=(VirtualAddress>>12)*4+0xC0000000
PDE_Address=(VirtualAddress>>22)*4+0xC0300000

PTE和PDE什么区别啊?
比如我想得到0xC0000000的物理地址那我就读取0xC0300000这个地址的数据就是了【ring0】
CR3是保存4M页映射表的起物理地址?4M要1024个页啊,他们不是连续的?不连的话那CR3就忙了,随时都得变
我想CR3仅仅是为了加快访问速度吧,比较到0xC0000000哪里去读物理地址是要花时间的

高手指教
...全文
108 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sicxun 2009-12-28
  • 打赏
  • 举报
回复
并不是为了提高访问速度
是提供一种兼容和一种保护

用户态是绝对碰不到r0的
你只有非法闯进去
或加载个驱动
yunyun050924 2009-12-27
  • 打赏
  • 举报
回复
以前看多操作系统有的关于这个的,好像一个是快表,一个是页表,快表是页表的缓存,在cpu内部是硬件实现,页表是由操作系统软件实现在内存中。不知道对不对。
z15881328993 2009-12-27
  • 打赏
  • 举报
回复
mov eax,cr3在ring3下不能执行,这条指令是特权级的?
我如果想修改页属性怎么办,不用API,我怎么修改0XC0000000的数据

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧