- 浏览: 546155 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (231)
- 一个操作系统的实现 (20)
- 汇编(NASM) (12)
- Linux编程 (11)
- 项目管理 (4)
- 计算机网络 (8)
- 设计模式(抽象&封装) (17)
- 数据结构和算法 (32)
- java基础 (6)
- UML细节 (2)
- C/C++ (31)
- Windows (2)
- 乱七八糟 (13)
- MyLaB (6)
- 系统程序员-成长计划 (8)
- POJ部分题目 (10)
- 数学 (6)
- 分布式 & 云计算 (2)
- python (13)
- 面试 (1)
- 链接、装载与库 (11)
- java并行编程 (3)
- 数据库 (0)
- 体系结构 (3)
- C++ template / STL (4)
- Linux环境和脚本 (6)
最新评论
-
chuanwang66:
默默水塘 写道typedef void(*Fun)(void) ...
C++虚函数表(转) -
默默水塘:
typedef void(*Fun)(void);
C++虚函数表(转) -
lishaoqingmn:
写的很好,例子简单明了,将观察者模式都表达了出来。
这里是ja ...
观察者模式——Observer
在实模式下,逻辑地址空间中存储单元的地址由段值和段内偏移两部分组成。在保护模式下,虚拟地址空间(相当于逻辑地址空间)中存储单元的地址由段选择子和段内偏移两部分组成。与实模式相比,段选择子取代了段值。
段选择子长16位。其高13位是描述符索引(Index)。所谓描述符索引是指描述符在描述符表中的序号。段选择子的第2位是引用描述符指示位,标记为TI,TI=0指示从全局描述符表GDT中读取该段的描述符;TI=1指示从局部描述符表LDT中读取该段的描述符。选择子最低两位是请求特权级RPL,用于特权检查。
选择子确定描述符,描述符确定段基地址,段基地址和段内偏移之和就是线性地址。所以,虚拟地址空间中的由段选择子和段内偏移构成的二维虚拟地址,就是这样确定了现行地址空间中的一维线性地址。
例如某个段选择子的值是0030H (0000,0000,0011,0000B),那么:描述符索引Index=6,描述符指示位TI=0(在GDT,而非LDT中),RPL=0,所以它指定全局描述符表中的第6个描述符,请求特权级是0
由于段选择子中的描述符索引字段由13位表示,所以可区分8096个描述符(2^13)。这也就是描述符表最多含有8096个描述符的原因。
由于每个描述符长8个字节,根据段选择格式,屏蔽选择低3位后所得的值就是段选择子所指定的描述符在描述符表中的偏移,这可以认为是安排选择子高13位作为描述符索引的原因。
有一种特殊的选择子称为空选择子(NULL),它的Index=0,TI=0,而RPL任意值。空选择子有特定的用途,当用空选择子进行存储访问时会引起异常。空选择子是特别定义的,它不对应于全局描述符表GDT中的第0个描述符,因此GDT中的第0个描述符总不会被CPU访问,一般把它置全0.但是当TI=1时,Index=0的选择子不是空选择子,它指定了当前任务LDT中的第0个描述符。
**********************************************************************************
举例:第三章、P25代码chapter3/a/pmtest1.asm中:
%include “pm.inc” ... [SECTION .gdt] LABEL_GDT: Descriptor 0, 0, 0 ;空描述符 LABEL_DESC_CODE32: Descriptor 0, SegCode32Len-1, DA_C+DA_32 ;非一致代码段 LABEL_DESC_VIDEO: Descriptor 0B8000h, 0ffffh, DA_DRW ;显存首地址 GdtLen equ $-LABEL_GDT ;Gdt长度 ;GdtPtr等待后面被lgdt [GdtPtr]指令加载 GdtPtr dw GdtLen-1 ;Gdt界限 dd 0 ;Gdt基址 SelectorCode32 equ LABEL_DESC_CODE32 - LABEL_GDT SelectorVideo equ LABEL_DESC_VIDEO - LABEL_GDT
说明:
1、查看宏Descriptor可以发现,这里一个段描述符实际上定义了8个byte的数据
因此,以上两句相当于:
SelectorCode32 equ 0000,0000,0000,1000
SelectorVideo equ 0000,0000,0001,0000
所以,选择子SelectorCode32指示了GDT中的第1个(从下标1开始计)段,特权级为0; 选择子SelectorVideo指示了GDT中的第2个(从下标1开始计)段,特权级为0
2、LABEL_GDT是空描述符,可以对应一个空选择子,但这里没有这么做
**********************************************************************************
发表评论
-
(第三章 8 )特权级——保护模式的特权级检查(DPL,RPL,CPL, 一致代码段,非一致代码段)
2013-03-20 11:14 2372特权级是保护模式下一个重要的概念,CPL,RPL和 ... -
(第6章 1)最简单的进程
2012-10-11 10:56 1045第一步——ring0 --> ring1 ... -
(第4章 2)突破512字节的限制
2012-09-15 11:40 2816一、代码 ... -
(第4章 1)软盘结构及其数据读取
2012-09-14 21:59 1949参考资料: http://blog.cs ... -
(第三章 12)中断
2012-09-11 20:20 1053一、中断和8259A中断控制器 1. ... -
(第三章 8 )特权级——CPL、DPL、RPL
2012-07-11 10:02 2452很久以后,等我大量翻阅关于“保护模式的特权级检 ... -
(第三章 0)保护模式如何“保护”
2012-03-14 07:59 1104IA32中“保护模式”的“保护”二字理解:(P48) ... -
(第一、二章)nasm的汇编和反汇编
2012-02-27 13:36 4982nasm的汇编和反汇编 步骤: 1. 汇编(bo ... -
(第三章 14)克勤克俭用内存——初始化页目录表、页表,开启分页机制
2011-07-22 11:30 249在启动分页机制SetupPaging之前,先调用了Di ... -
(第三章 13)克勤克俭用内存——查看内存块
2011-07-22 09:25 143[SECTION .data1] ALIGN 32 ... -
(第三章 12)克勤克俭用内存——显示字符串
2011-07-21 16:25 116DispStr调用方法: [SECTION . ... -
(第三章 11)根据自己内存情况 使用分页机制
2011-06-11 15:51 1490一、查看内存分布情况 设置“页目录表”和“页 ... -
参考博客-还有哪些人也在看这本书
2011-06-10 22:46 1400这位很详细: http://www.cnblogs.com/ ... -
(第三章 10)“代码段间跳转” 和 “访问数据段”
2011-06-10 15:40 1387下面说明代码段和数据段的访问: 一、代码段间跳转 ... -
(第三章 9)通过调用门进行有特权级变换的转移(二)
2011-06-08 11:29 191本文展示《(第三章 9)通过调用门进行有特权级变换的转移(一) ... -
(第三章 9)“调用门” 和 “利用调用门在高低特权级的转移”
2011-06-08 10:34 2700在此之前,先要熟悉汇编指令“长/短jmp”、“长/短c ... -
(第三章 7)LDT
2011-06-06 09:49 1523先展示一下效果图: 直接看代码: ... -
(第三章 6)保护模式下,读写大地址内存 & 从32位保护模式跳回16位实模式(二)
2011-06-06 09:15 1491三、关于保护模式和实 ... -
(第三章 5)保护模式下,读写大地址内存 & 从32位保护模式跳回16位实模式(一)
2011-06-05 13:53 2084一、主要功能 ... -
(第三章 3)数据段/代码段描述符
2011-06-05 11:53 2277一、宏定义和属性常量 (代码段/数据段描述符见P32;门描述 ...
相关推荐
《电子测量技术基础》(张永瑞第三版)第2章测量误差和测量误差处理.pdf 内容为PPT课件
第三章通常会涉及到排序算法,这是一类基础且重要的算法,包括但不限于冒泡排序、选择排序、插入排序、快速排序、归并排序等。排序算法的学习不仅要求理解每种算法的基本思想,还需要掌握它们的时间复杂度和空间...
了解数据库设计原则,包括第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。 3. **SQL语句分类**:包括DML(Data Manipulation Language)用于数据操作,如SELECT、INSERT、UPDATE和DELETE;DDL(Data ...
国际贸易第3章第2节电子演示文稿.ppt
计算机体系结构第2版第三章课后习题答案 本资源是计算机体系结构第2版第三章课后习题答案,涵盖了流水线技术的基本概念、类型、特点和应用。下面是对该资源的详细解释: 流水线技术的基本概念 流水线技术是将一个...
《数字信号处理第二章第三章答案》主要涵盖了数字信号处理这一关键领域的核心概念和技术,针对的是《数字信号处理——基于计算机方法(第三版)》这本书的相关内容。这本由电子工业出版社出版的书籍,深入浅出地介绍...
《电子测量技术基础》(张永瑞第三版)第9章噪声测量.pdf 内容为PPT课件
第3章主要探讨了偶极子天线,这是一种在无线通信和雷达系统中广泛应用的天线类型。偶极子天线分为电偶极子和磁偶极子。 电偶极子,也称为赫兹偶极子,是由一段长度远小于波长的带电导线构成,其中电流I流过导线。在...
而“算法导论第三版课后答案-2-25章(部分中文).pdf”则是针对该书前25章的部分课后习题解答。课后习题是理解和掌握书本知识的关键,通过解题,读者可以检验自己的理解程度,加深对算法原理的记忆。这份中文解答...
泛函分析第三章 ...泛函分析第三章泛函分析第三章讨论了Hilbert空间、内积空间、orthonormal basis、紧凑子空间、闭子空间、正交分解、projection operator等基本概念和性质,并提供了大量的例子和应用。
jQuery 3.1 标准课程第二章 选择器子元素选择器(三)
这里我们将深入探讨基于提供的"王珊 数据库系统概论第三章课后答案"中的SQL语句所涉及的知识点。 1. **选择查询(SELECT)**:这是SQL中最基本的查询语句,用于从表中提取数据。例如,查询所有供应商的姓名和所在...
《电子测量技术基础》(张永瑞第三版)第3章信号发生器.pdf 内容为PPT课件
现代通信原理(第三版)[宋祖顺][电子教案]第2章 随机信号分析(09年)
尤其是在《模拟集成电路》一书中,第三章作为基础章节,为学生们理解电路的模拟工作原理打下了坚实的基础。然而,对于初学者来说,理解并解决课后习题往往是学习过程中的难点。针对这一难题,一份详尽的课后习题答案...
电子科技大学通信原理(李晓峰版)课件第3章模拟传输.pptx
第三节 本章小结\\t6 第三章 硬件设计\\t8 第一节 硬件选型\\t8 一、PLC选择\\t8 二、变频器选择\\t8 第二节 主电路设计\\t9 第三节 控制电路设计\\t9 第四节 PLC输入输出分配\\t10 第五节 PLC输入输出接线图\\t11 ...
计算机操作系统(第三版|微课版) 第7章习题及答案
2. 第三方库的获取和安装方法: - pip工具安装:pip是Python官方提供的包管理工具,用于安装和管理Python包。它是第三方库安装的推荐方式,支持在Windows、MacOSX和Linux等多个操作系统上使用。 - 自定义安装:...