参考资料:

  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. [py][mx]django静态文件目录配置

    使用TemplateView直接返回html from django.views.generic import TemplateView urlpatterns = [ path('',Templat ...

  2. [LeetCode] 103. Binary Tree Zigzag Level Order Traversal _ Medium tag: BFS

    Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...

  3. selenium webdriver模拟鼠标键盘操作

    在测试使用Selenium webdriver测试WEB系统的时候,用到了模拟鼠标.键盘的一些输入操作. 1.鼠标的左键点击.双击.拖拽.右键点击等: 2.键盘的回车.回退.空格.ctrl.alt.s ...

  4. Linux命令: 编辑模式移动光标

    敲命令按以下顺序 ①vim filename ②e ③i ④ESC 移动光标 0 (零):将光标移动到行的起始处. $:将光标移动到行的末尾处. H:将光标移到当前窗口(而非全文)的第一行起始处. M ...

  5. mysql设置环境变量

    临时修改环境变量 我们可以使用set语法在运行时修改环境变量,修改global变量后,对修改之前的session没有影响,对修修改之后的session生效:修改session变量后,修改后,对于该se ...

  6. Zookeeper使用实例——服务节点管理

    分布式处理中,总会存在多个服务节点同时工作,并且节点数量会随着网络规模的变化而动态增减,服务节点也有可能发生宕机与恢复.面对着动态增减的服务节点,我们如何保证客户请求被服务器正确处理呢.我们可以通过z ...

  7. quartz-job实现实时或定时发送短信任务

    存放调度器(Job 和 Trigger)信息的xml配置文件: 这是某个指定的要实现的定时任务: <!-- 每天给项目经理发送短信避免短信服务挂了 定时每天08:30执行--> <j ...

  8. php mysqli query 查询数据库后读取内容的方法

    php mysqli query 查询数据库后读取内容的方法 <?php$mysqli = new mysqli("localhost", "my_user&quo ...

  9. Linux中Postfix基于SSL收发邮件(九)

    其中在整个一套邮件服务器中,默认信息传输都是明文传输的,所以这个在安全性上面就不是那么好.但是如果说一封邮件从发生到对方接受想要全程做到加密处理这个也是很难的.因为一封邮件从一个域转到另外一个域服务器 ...

  10. 在Windows下搭建Android开发环境及遇到的问题

    转载1:http://www.cnblogs.com/xdp-gacl/p/4322165.html 转载2:http://www.cnblogs.com/zoupeiyang/p/4034517.h ...