汇编网首页登录博客注册
masmaster的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
文章收藏

[2010-10-08 10:42] 门描述符

除了存储段描述符和系统段描述符外,还有一类门描述符。
    门描述符并不描述某种内存段,而是描述控制转移的入口点。 这种描述符好比一个通向另一个代码段的门。 通过这种门,可实现任务特权级的变换和任务间的切换。因此,这种门描述符也称为控制门。
    
①门描述符的一般格式
    门描述符只有位于描述符内偏移5的类型字节与系统段描述符保持一致,也由该字节标识门描述符和系统段描述符。 该字节内的P位和DPL位的含义与其他描述符中的意义相同。其他字节主要用于存放一个48位的全指针(16位的选择子和32位的偏移量)

其数据结构如下:
GATE        STRUC
OFFSETL     DW    0    ;32位偏移的低16位
SELECTOR    DW    0    ;选择子
DCOUNT      DB    0    ;计数字段
GTYPE       DW    0    ;类型
OFFSETH     DW    0    ;32位偏移的高16位
GATE        ENDS

门描述符还可分为:任务门、调用门、中断门和陷阱门,并且除了任务门之外,其他的门描述符又各分为286和386两种。

②调用门
    调用门描述某个子程序的入口。 调用门内的选择子必须指向代码段描述符,调用门内的偏移是对应代码段内的偏移。 利用段间调用指令CALL,通过调用门可实现任务内从外层特权级变化到内层特权级。

②任务门
    任务门指示任务。 任务门内的选择子必须指向GDT中的任务状态段TSS描述符, 门内的偏移无意义。 任务的入口点保存在TSS中。 利用段间转移指令JMP和段间调用指令CALL,通过任务门可实现任务切换。

③中断门和陷阱门
    中断门和陷阱门描述中断/异常处理程序的入口点。 中断门和陷阱门内的选择子必须指向代码段描述符,门内的偏移就是对应代码段的入口点偏移。中断门和陷阱门只有在中断描述符表IDT中才有效。
评论次数(0)  |  浏览次数(773)  |  类型(汇编语言笔记) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码