参考资料:

  1.  http://blog.chinaunix.net/uid-20797642-id-2495244.html

  2.  http://www.techbulo.com/708.html

  3. 《Intel微处理器》

  4. http://blog.csdn.net/cbl709/article/details/7523951

  5. 操作系统类指令:http://blog.chinaunix.net/uid-49717-id-2392897.html

  6. http://blog.chinaunix.net/uid-24410388-id-34060.html

  7. Intel® 64 and IA-32 Architectures Software Developer Manuals

  这些不可见寄存器是入门OS原理的钥匙。主要有Cache、GDTR、LDTR、IDTR以及TR。它们工作在保护模式下。不可见的意思是程序不可见的意思。^_^

  1. Cache,即高速缓冲存储器,非1级缓存后2级缓冲。当一个新段号放入到段寄存器后,微处理器访问某一描述符表,并将描述符装入该段寄存器的程序不可见高速缓冲存储器,期且一直保存在此处。

  2. GDTR(global descriptor table register,全局描述符表寄存器):包含存放全局描述符表GDT的32位线性基地址和16位表长度值。由于描述符表的最大长度为64KB,所以每个表的界限为16位。当工作于保护模式时,全局描述符表地址和它的界限被装入到GDTR。在加电或复位后,默认基地址为0,默认长度为0xFFFF。在保护模式初始化过程中,必须给GDTR加载一个合法的值。指令LGDTSGDT分别用于加载和保存IDTR寄存器的内容。

  3. LDTR(local descriptor table register,局部描述符表寄存器):局部描述符表的位置是从全局描述符表中选择的(即,包含LDT表的段必须在GDT表中有一个段描述符项),为寻址局部描述符表,需建立了一个全局描述符,LDTR本身存了一个段选择子,通过段描述符确定其32位基地址和表长。为访问局部描述符表,将选择子装入LDTR,如同在段寄存器中装入选择子一样。这个选择子访问全局描述符表,并且将局部描述符表的基地址、界限和访问权限装入LDTR的高速缓冲存储区。指令LLDTSLDT分别用于加载和保存IDTR寄存器的内容。

  

图1 GDTR与LDTR的联系

  4. IDTR(interrupt descriptor table register,中断描述符寄存器):中断描述符寄存器用于存放中断描述符表IDT的32位线性基地址和16位表长度值。指令LIDTSIDT分别用于加载和保存IDTR寄存器的内容。加电后或复位后,基地址默认为0,长度默认为0xFFFF。在使用保护模式之前,必须初始化中断描述符表和IDTR。

  5. TR(task register,任务寄存器) 包含当前任务TSS段的16位段选择子、32位基地址、16位段长度和描述符属性值。它引用GDT表中的一个TSS类型的描述符。指令LTRSTR分别用于加载和保存TR寄存器的内容。当使用LTR指令把选择符加载进任务寄存器时,TSS描述符中的段基地址、段限长度以及描述符属性会被自动加载到任务寄存器中。任务通常就是过程或应用程序。过程或应用程序的描述符存储在全局描述符表中,因此可通过优先级控制它的访问。任务寄存器允许在约17us内完成上下文或任务的切换。任务切换机制使微处理器在足够短的时间内实现任务之间的切换,也使多任务系统以简单而有序的方式从一个任务切换到另一个任务。

  6. 当TI = 0时,表示段描述符在GDT中。

                        图2 段描述符在GDT中

  7. 当TI = 1时,表示段描述符在LDT中。

图3 段描述符在LDT中

Intel微处理器学习笔记(三) 不可见寄存器的更多相关文章

  1. Intel微处理器学习笔记(二) 三种模式

    三种模式:实模式.保护模式和平展模式. 实模式存储器(DOS存储器)位于00000H~FFFFFH,共1M空间(任何型号微处理器都支持). 保护模式存储器(Windows存储器)可位于整个保护存储系统 ...

  2. Intel微处理器学习笔记(五) 中断

    ▼ 中断是一个由硬件激发的过程,它中断当前正在执行的任何程序. ▼ 在Intel系列微处理器中,包括INTR和NMI(Non Maskable Interrupt)两个申请中断的引脚和一个响应INTR ...

  3. Intel微处理器学习笔记(四) 内存分页

    内存分页机制(memory paging mechanism)是从386开始的.线性地址通过分页机制透明转换为物理地址. 从这里知道:1. 如果不分页,则线性地址等于物理地址:2. 如果分页,则线性地 ...

  4. Intel微处理器学习笔记(一) 实模式内存结构

    图一 奔腾概念示意图 存储系统一般划分为三个主要部分:TPA(transient program area),System Area和XMS(extended memory system). 图二 内 ...

  5. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  6. DSP EPWM学习笔记2 - EPWM相关寄存器设置问题解析

    DSP EPWM学习笔记2 - EPWM相关寄存器设置问题解析 彭会锋 本篇主要针对不太熟悉的TZ 故障捕获 和 DB 死区产生两个子模块进行学习研究 感觉TI的寄存器命名还是有一定规律可循的 SEL ...

  7. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  8. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  9. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

随机推荐

  1. JS的二维数组

    今天,记录一下JS的二位数组,并附上例题. 一.二维数组的本质:数组中的元素又是数组. 其实,我们都见过这样的二维数组,只不过没在意罢了,例如: var arr = [[1,2,4,6],[2,4,7 ...

  2. [LeetCode] 437. Path Sum III_ Easy tag: DFS

    You are given a binary tree in which each node contains an integer value. Find the number of paths t ...

  3. [LeetCode] 252. Meeting Rooms_Easy tag: Sort

    Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si ...

  4. glob.glob()、os.path.split()函数、global和nonlocal关键字

    1. glob.glob() glob模块是Python最简单的模块之一, 内容非常少, 用它可以查找符合特定规则的文件路径名, 查找文件时只会用到三个匹配符: * :匹配0个或多个字符 ? : 匹配 ...

  5. Locust性能测试4-参数关联

    前言 前面[Locust性能测试2-先登录场景案例]讲了登录的案例,这种是直接传账号和密码就能登录了,有些登录的网站会复杂一点, 需要先从页面上动态获取参数,作为登录接口的请求参数,如[学信网:htt ...

  6. 批量导入数据到mssql数据库的

    概述 批量导入数据到数据库中,我们有好几种方式. 从一个数据表里生成数据脚本,到另一个数据库里执行脚本 从EXCEL里导入数据 上面两种方式,导入的数据都会生成大量的日志.如果批量导入5W条数据到数据 ...

  7. MVC5 新建项目里不包含jquery.unobtrusive-ajax.js(MVC5异步表单的问题)解决方法

    Asp.NET MVC 5 高级编程第5版.pdf 中有解决方法: 用NUGET程序包管理器控制台安装下面这两个文件 Install-Package jQuery –version 1.10.2 In ...

  8. 机器学习中的范数规则化 L0、L1与L2范数 核范数与规则项参数选择

    http://blog.csdn.net/zouxy09/article/details/24971995 机器学习中的范数规则化之(一)L0.L1与L2范数 zouxy09@qq.com http: ...

  9. 【转】Redis之发布 订阅模式

    本例包括 jedis_demo:入口类 jedis_control:jedis控制器(jedis的连接池) jedis_pub_sub_listener:订阅的监听器 singleton_agent: ...

  10. Q-learning简明实例Java代码实现

    在<Q-learning简明实例>中我们介绍了Q-learning算法的简单例子,从中我们可以总结出Q-learning算法的基本思想 本次选择的经验得分 = 本次选择的反馈得分 + 本次 ...