80386 内存寻址机制

本文详细阐述了80386在保护模式下如何通过段转换和页转换,将逻辑地址转换成物理内存地址。首先,段转换涉及段选择符、描述符表和段描述符,描述符表包含8192个段描述符,分为全局描述符表(GDT)和局部描述符表(LDT)。接着,页转换过程涉及到页目录和页表,通过CR3寄存器的页目录基地址进行线性地址到物理地址的映射,实现4GB的内存空间寻址。
摘要由CSDN通过智能技术生成

本文主要介绍80386在保护模式下,将分段形式的逻辑地址段选择符:偏移地址(ES:BX)转换成实际的物理内存地址的过程。

整个转换分成两个阶段:段转换(逻辑地址转换成线性地址)和页转换(线性地址转换成实际物理地址)。

                                                       段转换

如上图所示,描述符表是操作系统初始化时,在内存区域创建的一张表,具体的创建过程在后面的文章中会结合代码来说明。描述符表里面的每一项就是段描述符。需要特别注意的是,当选择符装入段寄存器时,CPU会把相应的描述符中的段起始地址、段界限和段属性等自动地装入描述符寄存器(段寄存器隐藏部分)。这里的偏移值,按照目前我的理解应该是在执行call指令时后面跟的函数标号,这个有待后续阅读初始化代码时进一步确认。

到这里,段转换的过程就介绍完了,下面具体看下选择符段描述符的格式:

选择符的结构

选择符的结构
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值