中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 求教高手:关于汇编语言的问题
作者:
标题: 求教高手:关于汇编语言的问题 上一主题 | 下一主题
goodboyfast
新手上路





积分 14
发帖 5
注册 2008-4-26
状态 离线
『楼 主』:  求教高手:关于汇编语言的问题

dseg    segment   use16  

;----------------------------------------

gdt   label byte                                                         ;全局描述符表

dummy   descriptor       <>

code    descriptor      <0FFFFh,,,atce,>                    ;代码段描述符      

code_sel=code-gdt                                                  ;选择子   

data    descriptor      <0FFFFh,,,atdw,>              ;数据段描述符

data_sel=data-gdt                                                    ;对应的选择子      

上面的: (gdt   label byte   ;全局描述符表)
是什么意思??,是表示地址还是什么??
这里: ( code_sel=code-gdt  ;选择子) 运算后是地址还是什么数据??
谢谢

2009-3-3 10:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netwinxp
高级用户





积分 741
发帖 366
注册 2007-7-25
状态 离线
『第 2 楼』:  

保护模式下,段选择子相当于以前的段寄存器,由它和偏移量形成最终的真正地址(含虚拟地址)。段选择子的值是根据一个指向描述表的指针(GDTR寄存器或LDTR寄存器)从描述表取得。
描述表分为全局性(GDT)和局部性(LDT),前者大家可以共享,后者仅当前任务使用。
描述表由多条表项组成,每条表项由16位的限长和32位的地址组成。
gdt label byte是个标签示意这是全局性描述表的开始,上表有两个表项代码段和数据段,0FFFFh也就是所谓的限长,超过这64K范围就会在CPU产生一个硬件中断或异常,后面也就是个32位的地址,这个通常也就是被称为段选择子,它的值用来和偏移量运算形成真正的地址。
保护模式还需要注意另外一个表,叫中断描述表(IDT),它的指针是寄存器IDTR。

2009-3-4 12:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
goodboyfast
新手上路





积分 14
发帖 5
注册 2008-4-26
状态 离线
『第 3 楼』:  

谢谢2楼的解答,原来 gdt   label byte   是表示一个以BYTE为单位的标签.
code_sel=code-gdt  是表示CODE-GDT的长度,也就是CODE_SEL=16.
我这样理解对吗:?在保护模式的书上介绍不详细,说选择子是GDT里的索引.
按此解释CODE_SEL应该为 2 的.

2009-3-6 05:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
goodboyfast
新手上路





积分 14
发帖 5
注册 2008-4-26
状态 离线
『第 4 楼』:  

再次谢谢2楼,现在搞明白了,书上说的不错,因选择子用的是高13位,而一个描述符是8
字节,所以低3位相对来说最多可以表示8,选择子是索引,我以前理解错了,
CODE_SEL的值应该与RPL和TI位联系起来的,如上例,因RPL=0,TI=0,所以
CODE_SEL=8,索引为1

2009-3-8 08:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: