LGDT/LIDT - 加载全局/中断描述符表格寄存器
操作码
指令 |
说明 |
|
0F 01 /2 |
LGDT m16&32 |
将 m 加载到 GDTR |
0F 01 /3 |
LIDT m16&32 |
将 m 加载到 IDTR |
说明
将源操作数中的值加载到全局描述符表格寄存器 (GDTR) 或中断描述符表格寄存器 (IDTR)。源操作数指定 6 字节内存位置,它包含全局描述符表格 (GDT) 或中断描述符表格 (IDT) 的基址(线性地址)与限制(表格大小,以字节计)。如果操作数大小属性是 32 位,则将 16 位限制(6 字节数据操作数的 2 个低位字节)与 32 位基址(数据操作数的 4 个高位字节)加载到寄存器。如果操作数大小属性是 16 位,则加载 16 位限制(2 个低位字节)与 24 位基址(第三、四、五字节)。这里,不使用操作数的高位字节,GDTR 或 IDTR 中基址的高位字节用零填充。
LGDT 与 LIDT 指令仅用在操作系统软件中;它们不用在应用程序中。在保护模式中,它们是仅有的能够直接加载线性地址(即,不是段相对地址)与限制的指令。它们通常在实地址模式中执行,以便处理器在切换到保护模式之前进行初始化。
如需有关存储 GDTR 与 IDTR 内容的详细信息,请参阅本章中的 SFENCE - 存储边界。
操作
IF instruction is LIDT
THEN
IF OperandSize 16
THEN
IDTR(Limit) SRC[0:15];
IDTR(Base) SRC[16:47] AND 00FFFFFFH;
ELSE (* 32-bit Operand Size *)
IDTR(Limit) SRC[0:15];
IDTR(Base) SRC[16:47];
FI;
ELSE (* instruction is LGDT *)
IF OperandSize 16
THEN
GDTR(Limit) SRC[0:15];
GDTR(Base) SRC[16:47] AND 00FFFFFFH;
ELSE (* 32-bit Operand Size *)
GDTR(Limit) SRC[0:15];
GDTR(Base) SRC[16:47];
FI; FI;
影响的标志
无。
保护模式异常
#UD - 如果源操作数不是内存位置。
#GP(0) - 如果当前特权级别不是 0。如果内存操作数有效地址超出 CS、DS、ES、FS 或 GS 段限制。如果 DS、ES、FS、或 GS 寄存器用于访问内存,并且它包含空的段选择器。
#SS(0) - 如果内存操作数有效地址超出 SS 段限制。
#PF(错误代码) - 如果发生页错误。
实地址模式异常
#UD - 如果源操作数不是内存位置。
#GP - 如果内存操作数有效地址超出 CS、DS、ES、FS 或 GS 段限制。
#SS - 如果内存操作数有效地址超出 SS 段限制。
虚 8086 模式异常
#GP(0) - 如果内存操作数有效地址超出 CS、DS、ES、FS 或 GS 段限制。
LGDT/LIDT - 加载全局/中断描述符表格寄存器相关推荐
- AssetBundle异步加载被中断的问题
1)AssetBundle异步加载被中断的问题 2)LuaDLL.lua_pcall()自身产生开销问题 3)法线在手机渲染时出现的错误问题 4)UNITY_MATRIX_I_V 和Camera.m ...
- 延时加载全局的js和css
需求 一般情况下,例如 echarts 这些库,我们可以直接将对应的js文件放到public文件夹当中,然后在全局的html文件利用script标签引入来使用(或者cdn或者node-module模块 ...
- webpack中的style-resources-loader加载全局css变量
我们在项目中经常会遇到这种场景,抽离了一些公用的样式,并且还会定义一些变量,比如:variables , mixins , function,之前都是在每个样式文件中手动的@import导入.styl ...
- 百度地图api不能加载出地图只有格网的问题解决方法
直接复制官方helloworld的demo,把ak改成了自己申请的ak. 我是直接打开的html文件,然后一直在报错! 火狐浏览器只有格网没有地图,chorme有地图但是也有error. 最后解决的方 ...
- 关于BIOS加载BOOT.S的经典解答
摘录论坛问答(一) 问:我需要一个什么样的环境才能编译 0.11的内核 ,比如应安装什么版本的linux ,什么样的硬件比较好.需要在安装LINUX的机器上再安装什么软件包和编译工具. 答: 一般带有 ...
- ASM:《X86汇编语言-从实模式到保护模式》第13章:保护模式下内核的加载,程序的动态加载和执行...
★PART1:32位保护模式下内核简易模型 1. 内核的结构,功能和加载 每个内核的主引导程序都会有所不同,因为内核都会有不同的结构.有时候主引导程序的一些段和内核段是可以共用的(事实上加载完内核以后 ...
- Swift - 表格图片加载优化(拖动表格时不加载,停止时只加载当前页图片)
列表的单元格中包含有图片在开发中很常见.通常我们可以直接在tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIn ...
- 006-spring cloud gateway-GatewayAutoConfiguration核心配置-GatewayProperties初始化加载、Route初始化加载...
一.GatewayProperties 1.1.在GatewayAutoConfiguration中加载 在Spring-Cloud-Gateway初始化时,同时GatewayAutoConfigur ...
- 带你剖析WebGis的世界奥秘----Geojson数据加载(高级)
前言:前两周我带你们分析了WebGis中关键步骤瓦片加载+点击事件(具体的看前两篇文章),下面呢,我带大家来看看Geojson的加载及其点击事件 Geojson数据解析 GeoJSON是一种对各种地理 ...
最新文章
- Java基础知识学习01-环境变量的配置、数据类型
- 火狐浏览器工具栏/折叠菜单怎么设置?火狐浏览器工具栏/折叠菜单定制教程
- 《Cisco安全防火墙服务模块(FWSM)解决方案》——1.4 利用包检测技术
- 【Kettle】第一篇,Pan 的使用
- 数据结构基础知识(2)
- TCP/IP参考模型入门
- thymealf 高级用法_mybatis基础系列(四)——关联查询、延迟加载、一级缓存与二级缓存...
- Linux:GCC安装与编译(详细)
- Java中级工程师面试题
- 【oracle】中文数字转阿拉伯数字
- 上位机plc编程入门_零基础自学plc编程怎么入门?
- 双网卡实现内外网同时上网
- mousetrap.js使用详解
- 广播与点播、单播与组播
- jquery的插件有哪些
- 开源论坛框架调研总结
- templets/default/index.htm Not Found! 图文教程 织梦程序的安装方法
- tp-link 拨号失败 服务器无响应,无线路由器拨号无响应怎么办
- 图解TCP/IP之半双工全双工通信
- html表格垂直居中的CSS代码,使用3行CSS代码使任何元素垂直居中
热门文章
- POJ2308连连看dfs+bfs+优化
- 【五线谱】符干朝向与连音线 ( 符干朝向 | 第三线以下符干朝上 | 第三线以上符干朝下 | 连音线 )
- 【Groovy】MOP 元对象协议与元编程 ( 使用 Groovy 元编程进行函数拦截 | 重写 MetaClass#invokeMethod 方法实现函数拦截 | 实现函数调用转发 )
- 【C 语言】字符串模型 ( strstr-while 模型 | 抽象函数模型 | 业务子函数接口定义要点 | 形参指针间接赋值 | 返回值状态 | 形参指针处理 | 形参指针判空 | 形参返回值 )
- 【EventBus】发布-订阅模式 ( EventBus 组成模块 | 观察者模式 )
- Android Studio NDK 代码 Source Insight调试 (NDK 目前开发方案 | NDK 编译 | 导入 so 库 | 项目编码转换)
- 台哥原创:java 扫雷源码
- 关于子网划分—为什么全0全1子网号不能使用
- oracle得到日期对应的星期
- dokuwiki导航的研究