Bochs源码分析 - 25:关于内存寄存器及属性有关机制说明

本文深入分析了x86/x64架构下的内存管理机制,涉及CR0和CR4寄存器中的关键位如PG、WP、CD/NW、PSE、PAE、PGE等,以及它们在分页、缓存和权限控制中的作用。同时,文章提及了CR3寄存器和PDE、PTE页表项的属性。通过对这些概念的探讨,读者能更好地理解操作系统如何管理内存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

        之前我们一直没有介绍与内存相关的寄存器以及页项中的各个属性位及其影响,现在我们写这篇文章来分析一下有关机制。

CR0.PG

        Paging (bit 31 of CR0) — Enables paging when set; disables paging when clear. When paging is disabled, all linear addresses are treated as physical addresses. The PG flag has no effect if the PE flag (bit 0 of register CR0) is not also set; setting the PG flag when the PE flag is clear causes a general-protection exception (#GP). See also: Chapter 4, “Paging.”

        这个PG代表paing,当该位置为1时表示开启分页模式,开启该模式,你访问的地址为线性地址而不是物理地址,要通过页表来进行转换。要注意,在打开该模式前,其首先开始保护模式,即PE位必须置为1,否则无效。

        在代码中构建好页表之后,直接将这个位置为1即表示打开分页模式。

; 打开 paging
        mov eax, cr0
        bts eax, 31
        mov cr0, eax 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值