Intel微处理器学习笔记(三) 不可见寄存器
参考资料:
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加载一个合法的值。指令LGDT和SGDT分别用于加载和保存IDTR寄存器的内容。
3. LDTR(local descriptor table register,局部描述符表寄存器):局部描述符表的位置是从全局描述符表中选择的(即,包含LDT表的段必须在GDT表中有一个段描述符项),为寻址局部描述符表,需建立了一个全局描述符,LDTR本身存了一个段选择子,通过段描述符确定其32位基地址和表长。为访问局部描述符表,将选择子装入LDTR,如同在段寄存器中装入选择子一样。这个选择子访问全局描述符表,并且将局部描述符表的基地址、界限和访问权限装入LDTR的高速缓冲存储区。指令LLDT和SLDT分别用于加载和保存IDTR寄存器的内容。
图1 GDTR与LDTR的联系
4. IDTR(interrupt descriptor table register,中断描述符寄存器):中断描述符寄存器用于存放中断描述符表IDT的32位线性基地址和16位表长度值。指令LIDT和SIDT分别用于加载和保存IDTR寄存器的内容。加电后或复位后,基地址默认为0,长度默认为0xFFFF。在使用保护模式之前,必须初始化中断描述符表和IDTR。
5. TR(task register,任务寄存器) 包含当前任务TSS段的16位段选择子、32位基地址、16位段长度和描述符属性值。它引用GDT表中的一个TSS类型的描述符。指令LTR和STR分别用于加载和保存TR寄存器的内容。当使用LTR指令把选择符加载进任务寄存器时,TSS描述符中的段基地址、段限长度以及描述符属性会被自动加载到任务寄存器中。任务通常就是过程或应用程序。过程或应用程序的描述符存储在全局描述符表中,因此可通过优先级控制它的访问。任务寄存器允许在约17us内完成上下文或任务的切换。任务切换机制使微处理器在足够短的时间内实现任务之间的切换,也使多任务系统以简单而有序的方式从一个任务切换到另一个任务。
6. 当TI = 0时,表示段描述符在GDT中。
图2 段描述符在GDT中
7. 当TI = 1时,表示段描述符在LDT中。
图3 段描述符在LDT中
Intel微处理器学习笔记(三) 不可见寄存器的更多相关文章
- Intel微处理器学习笔记(二) 三种模式
三种模式:实模式.保护模式和平展模式. 实模式存储器(DOS存储器)位于00000H~FFFFFH,共1M空间(任何型号微处理器都支持). 保护模式存储器(Windows存储器)可位于整个保护存储系统 ...
- Intel微处理器学习笔记(五) 中断
▼ 中断是一个由硬件激发的过程,它中断当前正在执行的任何程序. ▼ 在Intel系列微处理器中,包括INTR和NMI(Non Maskable Interrupt)两个申请中断的引脚和一个响应INTR ...
- Intel微处理器学习笔记(四) 内存分页
内存分页机制(memory paging mechanism)是从386开始的.线性地址通过分页机制透明转换为物理地址. 从这里知道:1. 如果不分页,则线性地址等于物理地址:2. 如果分页,则线性地 ...
- Intel微处理器学习笔记(一) 实模式内存结构
图一 奔腾概念示意图 存储系统一般划分为三个主要部分:TPA(transient program area),System Area和XMS(extended memory system). 图二 内 ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- DSP EPWM学习笔记2 - EPWM相关寄存器设置问题解析
DSP EPWM学习笔记2 - EPWM相关寄存器设置问题解析 彭会锋 本篇主要针对不太熟悉的TZ 故障捕获 和 DB 死区产生两个子模块进行学习研究 感觉TI的寄存器命名还是有一定规律可循的 SEL ...
- [Firefly引擎][学习笔记三][已完结]所需模块封装
原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读: 笔记三主要就是各个模块的封装了,这里贴 ...
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- java之jvm学习笔记三(Class文件检验器)
java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...
随机推荐
- AngularJS 事件广播与接收 $emit $broadcast $on
AngularJS中的作用域scope有一个非常有层次和嵌套分明的结构. 其中它们都有一个主要的$rootScope(也就说对应的Angular应用或者ng-app),然后其他所有的作用域部分都是继承 ...
- WebService之Axis2 (3):使用services.xml文件发布WebService
用Axis2实现Web Service,虽然可以将POJO类放在axis2\WEB-INF\pojo目录中直接发布成Web Service,这样做不需要进行任何配置,但这些POJO类不能在任何包中.这 ...
- 1.keras实现-->自己训练卷积模型实现猫狗二分类(CNN)
原数据集:包含 25000张猫狗图像,两个类别各有12500 新数据集:猫.狗 (照片大小不一样) 训练集:各1000个样本 验证集:各500个样本 测试集:各500个样本 1= 狗,0= 猫 # 将 ...
- cmd 笔记(随时补充)
被一篇破解WIFI的标题文骗到了,所以学习一下CMD的命令 1 查看已经连接的wifi和密码 netsh wlan show profiles 回车 netsh wlan show profiles ...
- SQL Server报“GUID应包含带4个短划线的32位数”
转自:http://www.seayee.net/article/info_106.html 最近在配置一台服务器的MS SQL Server 2005的维护计划自动备份数据库,能创建维护计划,但设置 ...
- 谷歌浏览器 URL无法访问
使用谷歌浏览器老是会崩溃,或者访问的时候发现“URL无法访问”等失败的问题,连淘宝都没法访问,这个让人很恼火, 最后在扩展应用那里搜到个URL的redirect,问题解决了,~~发现没有再出现类似问题 ...
- Linux 使用系统ISO制作yum源
关于linux安装问题,大多数情况下 系统开发完成之后,需要部署到生产机器上,客户提供的机器预装好了操作系统,但是都是内网环境 与外网都是物理隔绝的,那么 在搭建生产环境时需要安装相关软件时,如果自己 ...
- python isinstance用法
isinstance(object,type) 其第一个参数(object)为对象,第二个参数(type)为类型名(int...)或类型名的一个列表((int,list,float)是一个列表). 其 ...
- OVS
基于 OpenvSwitch的OpenFlow实践 Open vSwitch 概述 OpenvSwitch(简称OVS)是由NiciraNetworks主导的,运行在虚拟化平台(例如 KVM,Xen) ...
- 原 用Tomcat服务器配置https双向认证过程实战
什么是https? 百度百科足够解释它:http://baike.baidu.com/view/14121.htm 工具:keytool (Windows下路径:%JAVA_HOME%/bin/key ...