Wollt ma kurz mein Code vorstellen um die idt im PMode zu erstellen der Vorteil
ist das man die idt wenn sie einmal initialisiert ist stückweise bestücken kann ohne das es bei nem Interrupt oder ner Exception nen total Absturz gibt
_idttable:
times 256*8 db 0
_idt:
IDTLimit dw 0
IDTBase dd 0
initirq:
mov ecx, 256
mov edi, _idttable
cld
initirq2:
mov eax, ignoreint
stosw
xor eax, eax
mov eax, 1000b ; Vorrausgesetzt der Code für den Handler steht im ersten Segment
stosw
xor eax,eax
stosb
xor eax,eax
mov eax, 0x8e
stosb
mov eax, ignoreint
shr eax, 16
stosw
loop initirq2
mov [IDTLimit], word 256*8-1
mov eax, 0x10000
add eax, _idttable
mov [IDTBase], eax
lidt [_idt]
ignoreint:
iret