# [Assembler] Interrupts im Protected Mode



## Aiju (3. Juni 2006)

Wie löse ich im Protected Mode Software Interrupts (INT XXX) aus?


----------



## TheAlchimist (8. Juli 2006)

Hi, in welchem Rahmen denn? Also im eigenen OS oder unter Linux, Windows o. a.?
MfG TheAlchimist


----------



## Aiju (9. Juli 2006)

eigenes os


----------



## TheAlchimist (9. Juli 2006)

Moin!
Im PM ist das Ganze ein wenig komplizierter. Normalerweise sind die Interruptvectoren ja das erste KB im Speicher, im Protected Mode gilt das aber nicht mehr (wie du wahrscheinlich schon gemerkt hast), weil der ganze speicher mehr oder weniger "virtualisiert" wird, d. h. die eigentlichen Speicheradressen werden vom Prozessor umgeleitet. Dadurch können aber auch die Interrupts nicht mehr nach dem alten Schema (Interruptnummer * 4 = Adresse des Vectors) angesprochen werden. Dafür gibt es jetzt die IDT, die Interrupt Descriptor Table, in der die Vectoren eingetragen werden müssen. Im Prozessor widerum wird nun ein Zeiger auf die IDT hinterlegt. Danach sollte dann alles funktionieren wie gehabt.

Eine sehr gute Erklärung, wie das Ganze funktioniert findest du hier:
Interrupts und Exceptions

Ich hoffe, dich weitergebracht zu haben.
MfG TheAlchimist


----------

