#include"basetsd.h" /* *IDT寄存器结构 *IDTR寄存器共有48位,高32位是IDT表的基地址,低16位是IDT表的长度(Limit) *IDT表示一张位于物理内存中的线性表,共有256个表项。 */ typedef struct _IDT_INFO{ UINT16 uIdtLimit; UINT16 uLowIdtBase; UINT16 uHighIdBase; }IDT_INFO,*PIDT_INFO; /* ----------------选择子----------------------- | 1 | 0 | 字节 |7654321076543 2 10| 比特 |-------------|-|--| 占位 | INDEX |T|R | 含义 | |I|P | | | |L | *Index : 在GDT数组或LDT数组的索引号 *TI:Table Indicator ,这个值为0表示查找GDT,1表示查找LDT *RPL:请求特权级,以什么样的权限去访问段。 */ typedef struct _SELECTOR{ int PRL:2; int TI:1; int Index:13; }SELECTOR,*PSELECTOR; /*----------------------段描述符结构-------------------- | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 字节 |76543210|7 6 5 4 3210 |7 65 4 3210|76543210|76543210|76543210|76543210|76543
遍历IDT表和分析GDT表结构
最新推荐文章于 2022-09-16 11:34:58 发布
本文介绍了IDT(中断描述符表)和GDT(全局描述符表)的结构,包括它们的字段含义,并展示了如何遍历IDT表,通过示例代码展示中断处理程序的地址获取过程。
摘要由CSDN通过智能技术生成