<2017年12月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

x86系列微处理器中8种描述符表https://blog.csdn.net/u014162133/article/details/46573873

 

 

 

 

1、数据段描述符:段描述符是GDT和LDT表中的一个数据结构项,用于向处理器提供有关一个段的位置和大小信息以及访问控制的状态信息。

 

2、代码段描述符:在16位模式下可以操作32位操作数和访问32位偏移(通过特定的指令前缀66H和67H),前提是这个偏移不能超过限长。因为默认情况下,16段的限长是0xFFFF。

 

3、LDT段描述符:代码的装入顺序决定了在内存中的地址位置。所有的代码或者数据都在硬盘上,当调试或者启动的时候,加载到内存;当需要对数据进行处理的时候,通过将数据从内存载入到registers 通过cpu来进入。

 

4、TSS段描述符:TSS用来记录当前进程执行时所对应的寄存器的数据,这些数据主要在进程切换时发挥作用,比如,现在要由当前进程"进程A"切换到进程B,那么系统就要将此时各个寄存器的数值,保存在进程A的任务状态描述符表中。

以便将来进程A再次执行时接着使用而不至于出现混乱;之后,再用进程B中TSS里面的寄存器值,来设置相应的寄存器,以此支持进程B接下来的执行。

 

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

 

6、中断门描述符:中断描述符IDT表示一个系统表,它与中断或异常向量相联系。每一个中断或异常向量在这个系统表中有对应的中断或异常处理程序入口地址。中断描述符的每一项对应一个中断或异常向量,每个向量由8个字节组成。因此,最多需要256*8=2048字节来存放IDT。

 

7、陷阱门描述符:陷阱门描述中断/异常处理程序的人口点。中断门和陷阱门内的选择子必须指向代码段描述符,门内的偏移就是对应代码段的人口点的偏移。中断门和陷阱门只有在中断描述符表IDT中才有效。

 

8、任务门描述符:任务状态段(Task State Segment)是保存一个任务重要信息的特殊段e799bee5baa6e4b893e5b19e31333366306464。任务状态段描述符用于描述这样的系统段。任务状态段寄存器TR的可见部分含有当前任务的任务状态段描述符的选择子,TR的不可见的高速缓冲寄存器部分含有当前任务状态段的段基地址和段界限等信息

posted @ 2020-04-09 22:19  史D芬周  阅读(654)  评论(0编辑  收藏  举报