`
Tveiker
  • 浏览: 55998 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

保护模式--段式存储

阅读更多
我们都知道,现在我们用计算机时操作系统都傲游在她的保护模式上,而一开始计算机是运行在保护模式上的。那么之间是如何转换得呢?

首先温习一下实模式下的物理地址和寄存器代表得(逻辑地址)之间得关系
物理地址=段值*16+偏移地址。

但是在保护模式下(段式管理),寄存器中得值并不是物理地址得段值,而是段值得索引。这个索引指向一个数据结构得一个表项。
这个数据结构就是GDT(Global Descriptor Table) LDT(Local Descriptor Table) 以及 IDT(Interrput Descriptor Table),这结构中得表项就是Descriptor描述符。

首先看下段的描述符结构


从上面得结构看起来,这个结构在内存中被安排得非常杂乱。所以我们需要一个函数或是宏来合理安排,由于用得很频繁且代码不长,考虑效率所以选择宏定义。nasm宏:
;宏描述符  
;usage:  Descriptor Base,Limit,Attr  
;        Base  %1 :  dd   双字(基址有32位)  
;        Limit %2 :  dd   双字,但是只有低20位有效,段界限只有20位  
;        Attr  %3 :  dw   字,高字节得低四位永远是0(在赋值时注意),因为它描述的在段界限中。即与属性相关得只有12位  
所以该宏得具体做法如下。  
%macro  Descriptor 3  
        dw  %2 & 0ffffh                      ;段界限(15..0)  
        dw  %1 & 0ffffh                      ;段基址(15..0)  
        db  (%1>>16) & 0ffh                  ;段基址(23..16)  
        dw  ((%2>>8) & 0f00h)|(%3 & 0f0ffh)  ;段界限(19..16) + 属性(这里好好分析,如果没搞明白就分成两个字节分别赋值,这样更直白)  
        db  (%1>>24) & 0ffh                  ;段基址(31..24)  
%endmacro  ;以上共8个字节。 

既然现在结构已经被管理好了(即现在用得时候很直观就能给其赋值了),那么他们具体怎么和CS,ds等实模式下段寄存器相关联的呢?

此时通过段的选择子来实现保护模式下寻址。此时CS,DS等


下面介绍选择子结构(其共有16位)它就是保护模式下段寄存器中的内容


其中TI是引用描述中得表示位。TI=1时表示从LDT中读取描述符。TI=0则表示从GDT中读取描述符。
RPL则是表示请求特权级。用于特权检查。其用法如下:每当一个程序访问一个段时,要把当前特权级与所访问段的特权级进行检查,以确定该程序是否允许访问该段。

现在我觉得我们应该详细了解下GDT中每个位的含义了:

首先对于基址,和段界限我觉得没什么可说得,这两者就确定一段物理地址范围。
所以主要解说下GDT属性。
对于BYTE5


1、P位称为存在位,P=1表示描述符对地址的转换有效的,即该段地址在内存中。P=0则表示段在内存中不存在
2、DPL是该描述符得特权级(Decriptor Privilege Level),特权级可以是0 ,1 , 2 ,3。数字越小特权越大。
3、S位指明描述符是代码段/数据段(S=1)还是系统段/门描述(S=0).
4、至于TYPE[3..0](当S=1时)
    1)、TYPE[0]表示该描述符是否被访问过,用A(Accessed)表示。A=1表示被访问过,A=0未被访问。当把描述符相应得选择子装入段寄存器时A=1。
2)、TYPE[3]表示该段是数据段还是代码段,用E表示。E=0表示为数据段,则数据可读,不可执行,E=1时表示为代码段,则数据可执行,不可写。
3)、当E=0时,即该描述符指的是数据段,所以数据可读,此时TYPE[1]表示数据是否可写用W表示。W=1表示可写,否则不可写。TYPE[2]表示数据段扩展方向ED表示,ED=1表示向下扩展,否则向上扩展。
4)、E=1是,表明该描述符指代码段,所以数据可执行。此时TYPE[1]用R标记表示代码是否可读,R=1则可读,否则不可读。TYPE[2]用C表示,指明代码是否一致代码段,C=0表示不是一致代码段(普通代码段),C=1表示是一致代码段。

下面综合归纳一下TYPE属性



看到这里,一定很迷惑这个“一致”是什么意思:它的意思是当转移的目标是一个特权级更高得一致代码段,当前特权会被延续下去,而向特权级更高得非一致性代码段转移就会引起常规得特权保护,无论是不是一致性代码,如果目标代码特权级低都不能通过jmp call转移进去。
   总之通过call 和 jmp转移遵循规则


好了BYTE5就这样了
下面讲下BYTE6中得属性了


1、G就是段的界限粒度(Granularity)。G=0表示段界限粒度是字节;G=1表示段界限粒度4K字节。段的界限粒度只对段界限有效,对基址无效(一直以字节位单位)
  2、D/B大致分为以下三种情况
     1)、在可执行代码段中此位D。D=1时,在默认情况下指令使用32位地址及32位或8位操作数。D=0时默认指令使用16位地址和16位或8位操作数。
2)、在向下扩展数据段中,此位B。B=1,段得上部界限4GB,B=0段得上部界限64KB
3)、在描述堆栈段时,此位B,B=1隐式堆栈访问指令(PUSH POP Call) 使用32位堆栈指针寄存器esp。当B=0时使用16位堆栈指针寄存器sp。
  3、AVL,是软件可利用位。80386对该位未作规定。
  4、位5必须值为0,也许为以后处理器预留。
  • 大小: 17.4 KB
  • 大小: 22 KB
  • 大小: 8.1 KB
  • 大小: 3.2 KB
  • 大小: 38.8 KB
  • 大小: 24.8 KB
  • 大小: 4.6 KB
1
0
分享到:
评论

相关推荐

    内存的存储管理--段式和页式管理的区别

    ### 内存的存储管理——段式和页...页式存储管理更适合于实现虚拟内存和避免外碎片问题,而段式存储管理则更符合程序的逻辑结构,有利于实现内存保护和动态增长。实际应用中,可以根据具体需求选择合适的内存管理方式。

    什么是 实地址方式、保护模式式、虚拟地址模式、浮点数.zip

    本文将详细探讨实地址方式、保护模式以及虚拟地址模式,并简单介绍浮点数在计算机中的处理。 1. 实地址方式(Real Address Mode): 实地址方式是早期8086处理器的一种工作模式。在这种模式下,CPU直接使用物理地址...

    保护模式介绍

    ### 保护模式介绍 #### 一、保护模式概述与工作原理 **保护模式**是现代计算机系统中的一个重要概念,尤其在32位和64位的x86架构处理器上非常关键。它允许操作系统和应用程序在不同的“特权级别”运行,并提供了一...

    X86 CPU在段式管理下的地址形成机制

    总的来说,X86 CPU的地址形成机制是其复杂性的一个体现,特别是段式管理和A20 Gate的控制,它们在实模式和保护模式下扮演着至关重要的角色,直接影响着系统对内存的访问和管理。理解这些机制对于系统开发者和硬件...

    计算机的保护模式ppt课件.ppt

    保护模式则引入了段式和页式内存管理,允许物理寻址空间达到4GB(80386/80486)或64GB(Pentium及以上)。它支持多任务并行和特权级保护,从而防止应用程序直接破坏操作系统。在此模式下,CPU有四个特权级,从0到3,...

    计算机的保护模式PPT课件.pptx

    而在保护模式下,CPU不仅提供了段式和页式内存管理,允许更大的物理寻址空间(如80386/80486的4GB,Pentium及以上的64GB),还支持多任务并行处理和四个不同的特权级。 **2.1.1 CPU的三种运行模式** 1. **实模式**...

    HOLTEK的段式液晶驱动单片机

    ### HOLTEK的段式液晶驱动单片机详解 #### 一、简介 HOLTEK的段式液晶驱动单片机,特别是HT49R50A-1/HT49C50-1/HT49C50L系列,是专为需要LCD显示功能的产品设计的高性能精简指令集单片机(RISC)。这些单片机不仅...

    保护模式及其编程PPT教案学习.pptx

    - **保护模式**:支持段式和页式内存管理,允许多任务和特权级,Windows/Linux等现代操作系统在此模式下运行。 - **虚拟8086模式**:在保护模式下模拟8086环境,用于在现代系统中运行DOS程序。 3. **特权级** - ...

    微处理机在保护模式下多任务切换的剖析.pdf

    在保护模式下,逻辑地址通过段页式寻址机制映射成物理地址,以防止不同程序地址空间的相互覆盖,确保了多任务之间的有效隔离。特权分级系统和保护机构确保了从虚拟地址到物理地址切换的安全性,同时操作系统代码和...

    行业文档-设计装置-一种交替式太阳能路灯.zip

    传统的太阳能路灯系统通常在夜间持续照明,而交替式设计则是根据实际需求调整照明模式。例如,可以设定在低人流量时段降低亮度,而在高人流量时段保持较高亮度,或者在连续阴雨天采用节能模式,以延长电池寿命和照明...

    行业分类-设备装置-一种移动式英语教学装置.zip

    在现代教育技术飞速发展的背景下,移动式英语教学装置作为新型的教学工具,正逐渐改变着传统的英语教学模式。这种装置的出现,旨在打破地域限制,提供更灵活、便捷的学习方式,使得英语学习能够随时随地进行,极大地...

    行业分类-设备装置-P型定时式脉冲充电器.zip

    P型定时式脉冲充电器采用的是定时脉冲充电模式。首先,设备会以恒流方式进行快速充电,直到电池达到一定电压阈值。接着,进入脉冲充电阶段,充电器会发送一系列间隔定时的电流脉冲到电池,这些脉冲可以分为正脉冲和...

    行业资料-电子功用-单片机用电容式短时供电装置及供电方法的说明分析.rar

    在这样的背景下,单片机用电容式短时供电装置应运而生,它利用电容器的储能特性,为单片机提供备用电源,确保关键操作的连续性和数据保护,从而提高电子设备的可靠性与安全性。 电容器,作为电路中的基本元件,其...

    RB3711B-SOT-23封装单节锂电池保护IC 深圳市可芯电子有限公司.pdf

    - 在正常充电过程中,如果电池电压超过过充检测电压(4.30V)并持续一段时间,则触发过充保护。 - 过充检测电压延时为100ms。 **3. 过放电压情况:** - 在放电过程中,如果电池电压低于过放检测电压(2.80V)并持续...

    模拟设计页式存储管理的分配与回收

    这种混合管理模式结合了段式和页式的优势,可以更好地支持程序模块化和数据保护,同时也提高了内存的利用率。然而,它也带来了更复杂的地址转换和更多的内存管理开销。 总结起来,页式存储管理和段式页式管理是现代...

    IA-32架构软件开发人员手册第3卷 系统编程指南 中文版

    - **段到页的映射**:解释如何将段式内存管理和分页技术结合起来使用。 - **转换后备缓冲区(TLB)**:用于缓存最近使用的页表项,提高地址转换效率。 #### 七、保护机制 - **启用/禁用段保护和页保护**:描述如何...

    行业文档-设计装置-便携包装式纸箱.zip

    它通常采用折叠结构,使得纸箱在未使用时占用空间小,便于存储和运输。在需要使用时,用户可以快速展开并组装成一个坚固的包装盒。这种设计在电子商务、零售业以及物流领域中具有广泛应用,因为它们可以有效减少包装...

    基本分段存储管理系统

    在多种内存管理模式中,基本分段存储管理系统是一种将用户程序逻辑地址空间划分为多个独立的段,每个段都有自己的名字和长度的管理方式。这种模式在多任务和多用户环境中尤为常见,因为它能够更好地满足程序模块化的...

    行业文档-设计装置-壁挂式太阳能灯.zip

    壁挂式太阳能灯的核心在于其太阳能电池板,该组件能将太阳光转化为电能,并通过控制器存储在内置的蓄电池中。当夜间或光照不足时,电池释放储存的能量,驱动灯具的LED光源发光。这一过程涉及到光电效应、能量转换和...

    电力电子课程设计报告-单端反激式输出开关电源设计.doc

    电力电子课程设计报告的核心是单端反激式开关电源的设计,这是一种常见的电源转换技术,尤其适用于小功率应用。设计任务是构建一个输入为180V、输出为10V的电源,具备1A的负载能力和过流保护功能。 1. 反激变换器...

Global site tag (gtag.js) - Google Analytics