由GDTR计算GDT的一些相关值
来源:互联网 发布:枪林弹雨刷永久枪软件 编辑:程序博客网 时间:2024/04/29 09:16
读张银奎老师的《软件调试》一书,其中一节讲保护模式中分段机制,举了一个例子,用WinDBG观察GDTR和LDTR值,并由此得出一些结论,实例如下:
kd> r gdtr
gdtr=8003f00
kd> r idtr
idtr=8003f400
kd>r gdtl
gdtl=000003ff
kd>r idtl
idtl=000007ff
结论是:GDT的边界是1023,总长度是1024字节,共有128个表项
IDT的表长度是2048字节,共有256项
我们来看看是怎么计算得来,首先是GDT边界为gdtl=00003ff(H)=1023(D),总长度即0-1023,则为1024字节,也即为1K,这个没问题,我算的来。
一共有128个表项。为什么会有128项呢?怎么计算的呢?怎么想来想不明白。我就用1024÷128=8.我知道2的3次是8,关键这8从哪来的呢?代表什么意思,好难呀,想不明白。
百思不得其姐,错,是解,没折了就在那乱翻书,突然翻到段描述通用格式那节才想起来,其结构是64位,也即8个字节,这个8 是8 个字节,这样这个128表项就自然来了。
IDT的7ff(H)即是2047,从0开始共讲2048字节,也即2K,除以8,刚好256个表项。
读书最大的乐趣就在于“为伊消得人憔悴”后的“那人却在灯火阑珊处。”
0 0
- 由GDTR计算GDT的一些相关值
- GDT、GDTR、LDT、LDTR的理解 [zz]
- GDT、GDTR、LDT、LDTR的学习
- GDT、GDTR、LDT、LDTR的理解 [zz]
- GDT、GDTR、LDT、LDTR的学习
- GDT、GDTR、LDT、LDTR的学习
- GDT、GDTR、LDT、LDTR的理解
- GDT,GDTR,LDT,LDTR的学习
- GDT、GDTR、LDT、LDTR的学习
- GDTR、LDTR、GDT、LDT的理解’
- linux0.11相关进程数据结构 GDT,LDT,GDTR,LDTR
- GDT,LDT,GDTR,LDTR
- GDT LDT GDTR LDTR
- GDT、GDTR、LDT、LDT
- GDT,LDT,GDTR,LDTR
- GDT、GDTR、LDT、LDTR
- 个人对GDT、GDTR、LDT、LDTR的理解
- 个人对GDT、GDTR、LDT、LDTR的理解
- AllJoyn™ Transport
- JAVA自动更新程序
- 有序表查找
- vs2010 大括号折叠 大纲语句块
- Caused by: java.lang.NoSuchMethodError: org.hibernate.cfg.annotations.reflection.XMLContext$Default.
- 由GDTR计算GDT的一些相关值
- FreeBSD常用命令110条
- CoreData 封装
- Oracle 结合rollup生成报表
- error:/usr/bin/ld:skipping incompatible ./libxxxx.so when searching for -lxxxx
- ubuntu14.04.3 编译octave4.0,具备了图形GUI界面
- JQuery中动态添加easyui组件 动态渲染 parser具体怎么用
- c++学习之----MFC的执行顺序
- SQL