在 bochs 刚开始的时候 gdt 是未知的,需要通过实模式的16位代码段初始化 gdt 信息,
在 lgdt 指令之后,即可以使用程序自定义的 GDT 表了。 假如:gdt 初始地址为 0x7c78 (此处根据你的实际情况来定)
描述符表每一个选择符(理解为表的一行)占8个字节,64位;0x7c78 处的内存内容如下 chs:> info gdt
Global Descriptor Table (base=0x0000000000007c78, limit=):
GDT[0x00]=??? descriptor hi=0x00000000, lo=0x00000000
GDT[0x01]=Code segment, base=0x00007c60, limit=0x00000014, Execute-Only, Non-Conforming, Accessed, -bit
GDT[0x02]=Data segment, base=0x000b8000, limit=0x0000ffff, Read/Write, Accessed <bochs:> x /23bx 0x7c78
[bochs]:
0x0000000000007c78 <bogus+ >: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x0000000000007c80 <bogus+ >: 0x14 0x00 0x60 0x7c 0x00 0x99 0x40 0x00
0x0000000000007c88 <bogus+ >: 0xff 0xff 0x00 0x80 0x0b 0x93 0x00 编

==================================================================
值1 0x00409900
0x7c600014 值2 0x0000930b
0x8000ffff 如果此时指定 0x0008:0x0010(此即选择子,我的理解就是8的整数倍,但计算地址时只用前面13位, 最后三位用来有别的作用) 则其实际地址计算方法如下:
、0x0008 表示描述符在 GDT 表中的位置,即 0x0008/ = ,即GDT[0x01]项
、在 GDT[0x01] 中看到 base=0x7c60, 则线性地址为:0x7c60+0x0010 = 0x7c70 如果此时指定 0x0010:0x0010 则其实际地址计算方法如下:
、0x0010 即 0x0010/ = , 即 GDT[0x02]项
、在 GDT[0x02] 中看到 base=0xb8000,则线性地址为:0xb800+0x0010 = 0xb810 <<额,此处有误,应该是 0xb8000 + 0x0010 = 0xb8010

GDT 学习笔记逻辑地址和线性地址计算,因为是自学,所以这只是我的个人理解,不对的请大家指导。的更多相关文章

  1. Java集合类学习笔记(各种线性表性能分析)

    ArrayList.LinkedList是线性表的两种典型实现:基于数组的线性表和基于链的线性表. Queue代表了队列,Deque代表了双端队列. 一般来说,由于数组以一块连续内存区来保存所有的数组 ...

  2. 【Java数据结构学习笔记之一】线性表的存储结构及其代码实现

    应用程序后在那个的数据大致有四种基本的逻辑结构: 集合:数据元素之间只有"同属于一个集合"的关系 线性结构:数据元素之间存在一个对一个的关系 树形结构:数据元素之间存在一个对多个关 ...

  3. Tomcat学习笔记 - 错误日志 - NetBeans配置tomcat出错情况总结 -- 尚未授予访问 Tomcat 服务器的权限。请在服务器管理器的 Tomcat 定制器中设置 "manager-script" 角色的正确用户名和口令。 有关详细信息, 请查看服务器日志。

    错误描述: 发布时控制台出现: 部署错误: 尚未授予访问 Tomcat 服务器的权限.请在服务器管理器的 Tomcat 定制器中设置 "manager-script" 角色的正确用 ...

  4. 树莓派学习笔记——使用文件IO操作GPIO SysFs方式

    0 前言     本文描写叙述假设通过文件IO sysfs方式控制树莓派 GPIO端口.通过sysfs方式控制GPIO,先訪问/sys/class/gpio文件夹,向export文件写入GPIO编号, ...

  5. EasyARM i.mx287学习笔记——通过modbus tcp控制GPIO

    0 前言     本文使用freemodbus协议栈,在EasyARM i.mx287上实现了modbus tcp从机. 在该从机中定义了线圈寄存器.当中线圈寄存器地址较低的4位和EasyARM的P2 ...

  6. 【Java】「深入理解Java虚拟机」学习笔记(1) - Java语言发展趋势

    0.前言 从这篇随笔开始记录Java虚拟机的内容,以前只是对Java的应用,聚焦的是业务,了解的只是语言层面,现在想深入学习一下. 对JVM的学习肯定不是看一遍书就能掌握的,在今后的学习和实践中如果有 ...

  7. ES6学习笔记<三> 生成器函数与yield

    为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...

  8. Python 3之str类型、string模块学习笔记

    Windows 10家庭中文版,Python 3.6.4, Python 3.7官文: Text Sequence Type — str string — Common string operatio ...

  9. 《从零开始学Swift》学习笔记(Day 13)——数据类型之整型和浮点型

    Swift 2.0学习笔记(Day 13)——数据类型之整型和浮点型 原创文章,欢迎转载.转载请注明:关东升的博客    Swift提供8.16.32.64位形式的有符号及无符号整数.这些整数类型遵循 ...

随机推荐

  1. js点击后将文字复制到剪贴板,将图片复制到剪贴板

    复制文字: <table width="99%" border="0" cellpadding="0" cellspacing=&qu ...

  2. R语言-基本数据管理

    类型转换函数 判断 is.numeric() is.character() is.vector() is.matrix() is.data.frame() is.factor() is.logical ...

  3. HDU 1698 Just a Hook(线段树 区间替换)

    Just a Hook [题目链接]Just a Hook [题目类型]线段树 区间替换 &题解: 线段树 区间替换 和区间求和 模板题 只不过不需要查询 题里只问了全部区间的和,所以seg[ ...

  4. 获取layer.open弹出层的返回值

    正在开发的车联网项目用到了layer API.当我在开发“新建电子围栏”的时候需要弹出地图,用户在地图中画一个区域,最后将这个弹出层的数据返回给原页面.下面是我的实现过:程: 触发弹出层的代码: la ...

  5. JVM实用参数(七)CMS收集器

    HotSpot JVM的并发标记清理收集器(CMS收集器)的主要目标就是:低应用停顿时间.该目标对于大多数交互式应用很重要,比如web应用.在我们看一下有关JVM的参数之前,让我们简要回顾CMS收集器 ...

  6. Axure 使用心得总结

    Axure的本意是高效快捷的完成原型制作,能够清晰的说明功能,交互就是好的,"够漂亮"就行,不需要做到很完美,至于完美还是交给专业的UI吧. 一些心得记录下来: 1.下载一些常用的 ...

  7. XQuery的 value() 方法、 exist() 方法 和 nodes() 方法

    Xml数据类型 /*------------------------------------------------------------------------------+ #| = : = : ...

  8. spring mvc1

    DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好 ...

  9. android layout布局属性

    参考:http://blog.csdn.net/msmile_my/article/details/9018775 第一类:属性值 true或者 false           android:lay ...

  10. Java-生成指定长度验证码的一种简单思路

     前言:以前做过的一个项目,刚开的时候始验证码是在前端生成前端验证的,后来觉得不靠谱,另外就是找回密码的功能也需要发送邮件和短信的验证码,所以,验证码就必须在后端生成并且保存到应用会话中才行了!所以, ...