关于80x86的寻址的问题:《一个操作系统的实现》
时间:2011-09-12
来源:互联网
再看于渊老师的《一个操作系统的实现》这本书,在实模式这章的开头3.1卡了好久,现在还是有一点点不明白,想问下各位网友:
书中说
selectorVideo equ LABL_DESC_VIDEO - LABEL_GDT
这里的selectorVideo 是一个选择子,之后又说这个是一个偏移量,我之后也看了些资料,我明白他为什么会是个偏移量了,可是为什么又说它是个选择子呢?说他是偏移量的话嘛,它就是两个地址相减的值,很容易理解成是一个偏移量,可是如果是选择子的话,要用后三位来做TI和RPL,那它又是怎么用两个地址相减后,就得到了他是一个选择器呢?他是怎样控制后三位的呢?不是说要用后三位来判断权限和是否是GDT还是LDT吗?
谢谢各位啦...
书中说
selectorVideo equ LABL_DESC_VIDEO - LABEL_GDT
这里的selectorVideo 是一个选择子,之后又说这个是一个偏移量,我之后也看了些资料,我明白他为什么会是个偏移量了,可是为什么又说它是个选择子呢?说他是偏移量的话嘛,它就是两个地址相减的值,很容易理解成是一个偏移量,可是如果是选择子的话,要用后三位来做TI和RPL,那它又是怎么用两个地址相减后,就得到了他是一个选择器呢?他是怎样控制后三位的呢?不是说要用后三位来判断权限和是否是GDT还是LDT吗?
谢谢各位啦...
作者: a328560319 发布时间: 2011-09-12
倒是经常听过此书,一直都未曾拜读过.
所以只说说可能的原因:
dt表中一个元素是8byte
2的3次方就是8
那么就可以利用这后3个bit
比如一个元素偏移地址是0x08
那么我可以传0x08 ~ 0x0f 之间值做为选择子.
然后真正寻值是把它减去余8后的值(这其实是把最后三个bit截断了.这三个bit便可做判断权限用), 就得到真实的偏移.
所以只说说可能的原因:
dt表中一个元素是8byte
2的3次方就是8
那么就可以利用这后3个bit
比如一个元素偏移地址是0x08
那么我可以传0x08 ~ 0x0f 之间值做为选择子.
然后真正寻值是把它减去余8后的值(这其实是把最后三个bit截断了.这三个bit便可做判断权限用), 就得到真实的偏移.
作者: zmlovelx 发布时间: 2011-09-13
gdt每项8bit,也就是说偏移量都会是8的倍数,那么偏移量(也就是选择子的后三位就空出来了),空出的后三位用来设定权限等,比如要设定选择子的rpl为3:
selectorVideo equ LABL_DESC_VIDEO - LABEL_GDT+3就行,也就是说,这个选择子需要偏移量加上一值才行,不知道我说清楚没
selectorVideo equ LABL_DESC_VIDEO - LABEL_GDT+3就行,也就是说,这个选择子需要偏移量加上一值才行,不知道我说清楚没
作者: bullbat 发布时间: 2011-09-13
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28