win32汇编-CR3寄存器和PDBR寄存器

 

CR3寄存器是x86架构中的一种控制寄存器,用于存储页目录表的物理地址(Physical Address)。

在x86架构的操作系统中,使用分页机制将虚拟地址映射到物理地址。为了实现这种映射,需要使用页表和页目录表来管理地址转换。CR3寄存器存储了页目录表的物理地址,通过改变CR3寄存器的值,可以实现不同的虚拟地址空间之间的切换。

当处理器执行访问内存的指令时,会将虚拟地址发送给内存管理单元(MMU),MMU根据当前CR3寄存器中存储的页目录表地址进行地址转换,将虚拟地址转换为物理地址,并完成内存的访问。

需要注意的是,CR3寄存器是特权级别的寄存器,只能在特权级别0(内核模式)下进行访问和修改。用户程序无法直接访问和修改CR3寄存器的值,它们只能通过特权级别0的内核代码提供的接口来间接修改CR3寄存器的值,例如在进程切换时更新CR3寄存器以切换页表。

总而言之,CR3寄存器是x86架构中的一种控制寄存器,用于存储页目录表的物理地址,通过改变CR3寄存器的值,可以实现不同虚拟地址空间之间的切换

 

CR3用于保存页目录表页面的物理地址·因此被称为PDBR·由于目录是页对齐的·所以仅高20位有效·低12位保留供更加高级的处理器使用·向CR3中装入一个新值时·低12位必须为0·从CR3中取值时·低12位被忽略

 

 

PDBR(Page Directory Base Register)是x86架构中的一种控制寄存器,用于存储页目录表的物理地址(Physical Address)。

在x86架构的操作系统中,使用分页机制将虚拟地址映射到物理地址。为了实现这种映射,需要使用页表和页目录表来管理地址转换。PDBR寄存器存储了页目录表的物理地址,通过改变PDBR寄存器的值,可以实现不同的虚拟地址空间之间的切换。

当处理器执行访问内存的指令时,会将虚拟地址发送给内存管理单元(MMU),MMU根据当前PDBR寄存器中存储的页目录表地址进行地址转换,将虚拟地址转换为物理地址,并完成内存的访问。

需要注意的是,PDBR寄存器在32位x86架构中叫做CR3(Control Register 3),在64位x86架构中叫做PDPTR(Page-Directory Pointer)。它们都是特权级别的寄存器,只能在特权级别0(内核模式)下进行访问和修改。用户程序无法直接访问和修改PDBR寄存器的值,它们只能通过特权级别0的内核代码提供的接口来间接修改PDBR寄存器的值,例如在进程切换时更新PDBR寄存器以切换页表。

总而言之,PDBR(或者CR3/PDPTR)寄存器是x86架构中的一种控制寄存器,用于存储页目录表的物理地址,通过改变PDBR寄存器的值,可以实现不同虚拟地址空间之间的切换

 

 

 

 

 

 

 

win32汇编-CR3寄存器和PDBR寄存器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值