分类: LINUX
2008-04-23 16:32:07
在I386CPU中,除了段描述符之外还有一种描述符叫做门描述符,它们并不描述某种内存段,而是描述控制转移的入口点,也就是目标代码的门。通过这种门可以实现特权级的转变和任务的切换。门描述符主要由两部分组成:选择子、偏移地址以及DPL。门描述符共有四种:调用门描述符、任务门描述符、中断门描述符和陷阱门描述符。
一、调用门描述符
调用门一般用在特权级的切换,存在于GDT中或者LDT中。调用门的选择子指向代码段描述符,偏移地址对应代码段中的偏移量。当jump和call指令的操作数是调用门的时候,就会跳转到对应的代码处,并发生特权级的变化,也就会发生堆栈的切换。
二、任务门描述符
任务门一般用在任务的切换,可以存放在GDT、LDT或IDT中。任务门的选择子指向GDT中的TSS选择符,偏移地址没有意义。当jmp和Call指令的操作数是任务门的时候,就会发生任务的切换。
三、中断门和陷阱门描述符
它们是是中断处理程序的入口,存在于IDT中。中断门和陷阱门的选择子指向代码段选择符,偏移地址是代码段中,中断处理程序的入口地址。