#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|76543210| 比特
|--------|-|-|-|-|---- |-|--|-|----|--------|--------|--------|-----
遍历IDT表和分析GDT表结构
最新推荐文章于 2025-10-15 22:59:21 发布
本文介绍了IDT(中断描述符表)和GDT(全局描述符表)的结构,包括它们的字段含义,并展示了如何遍历IDT表,通过示例代码展示中断处理程序的地址获取过程。

最低0.47元/天 解锁文章
4273

被折叠的 条评论
为什么被折叠?



