首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

小弟刚刚自学32位汇编买的罗云彬的关于GDTR和LDTR有不明白的地方

2012-08-11 
小弟刚自学32位汇编买的罗云彬的关于GDTR和LDTR有不明白的地方上图是我自己想的图,大家看看有什么错误帮忙

小弟刚自学32位汇编买的罗云彬的关于GDTR和LDTR有不明白的地方

上图是我自己想的图,大家看看有什么错误帮忙指出
有几个不明白的地方..
1.书上说的GDTR中的LDT段和LDT表有什么关系?
2.xxxx:yyyyyyyy xxxx应该和LDTR是两个段寄存器吧?
3是不是当xxxx中的TI位=1才使用LDTR寄存器?

有没有好心人带带小弟...278518173 

先谢谢各位..

[解决办法]
Intel手册 卷三,大概第42页,那个表看懂就行
[解决办法]
两个不同的寄存器,分别用来使用ldt和gdt用的。使用的区别就是selector的局部描述符置位,ldt和gdt区别不大,但用处完全不一样。
[解决办法]
我也刚学汇编,说说我的理解,可能有误,仅供参考。
1. xxxx:yyyyyyyy 是一个虚拟地址,xxxx在段选择器中,比如ds,es等。
2. T1为0时,表示在GDT中,很容易理解。
3. T1为1时,表明段描述符在LDT。这时要先找到LDT,此时GDTR中为GDT基址,LDTR为这个LDT在GDT中的描述符索引,执行完这步我们才得到LDT,然后根据xxxx的高13为索引从前面LDT中得到段描述符。
说了这么多,通俗点,就是使用LDT时,多了一个间接索引,也就是你说的“GDTR中的LDT段”。这个索引保存在LDTR中,而从GDT中根据索引得到实际LDT。得到LDT后就跟T1为0时从GDT中取段描述符一样了。

感觉win32中好多间接索引概念的东西,像上下文中中断表,页表等。

热点排行