protected mode IDT, GDT, and LDT |
|
offset |
IDT |
|
+0000h |
gate #00h descriptor |
+0008h |
gate #01h descriptor |
... |
... |
e.g. interrupt gate |
e.g. trap gate |
e.g. task gate |
... |
+07F8h |
gate #FFh descriptor |
+0800h |
unused |
... |
+FFFFh |
|
offset |
GDT |
LDT |
|
+0000h |
NULL descriptor |
descriptor |
+0008h |
descriptor |
descriptor |
... |
... |
... |
e.g. code segment descriptor |
e.g. code segment descriptor |
e.g. data segment descriptor |
e.g. data segment descriptor |
e.g. task gate descriptor |
e.g. task gate descriptor |
e.g. call gate descriptor |
e.g. call gate descriptor |
e.g. LDT segment descriptor |
... |
e.g. TSS segment descriptor |
... |
+FFF8h |
descriptor |
descriptor |
|
|
protected mode IDT64, GDT, and LDT |
|
offset |
IDT64 |
|
+0000h |
gate #00h descriptor |
+0010h |
gate #01h descriptor |
... |
... |
e.g. 64-bit interrupt gate |
e.g. 64-bit trap gate |
n/a 64-bit task gate |
... |
+0FF8h |
gate #FFh descriptor |
+1000h |
unused |
... |
+FFFFh |
|
note |
transitions through IDT64 gates clear the lowest 4 bits of RSP before the return stack frame gets pushed |
|
offset |
GDT |
LDT |
|
+0000h |
NULL descriptor |
descriptor |
+0008h |
descriptor |
descriptor |
... |
... |
... |
e.g. code segment descriptor |
e.g. code segment descriptor |
e.g. data segment descriptor |
e.g. data segment descriptor |
n/a 64-bit task gate descriptor |
n/a 64-bit task gate descriptor |
e.g. 64-bit call gate descriptor |
e.g. 64-bit call gate descriptor |
e.g. 64-bit LDT descriptor |
... |
e.g. 64-bit TSS descriptor |
... |
+FFF8h |
descriptor |
descriptor |
|
|
|
|
offset |
IVT |
|
+0000h |
vector #00h |
offset |
+0002h |
segment |
+0004h |
vector #01h |
offset |
+0006h |
segment |
... |
vector #xxh |
offset |
segment |
+03FCh |
vector #FFh |
offset |
+03FEh |
segment |
+0400h |
unused |
... |
+FFFFh |
|
|