Hallo,
jetzt bin ich einbisschen durcheinander. Ich habe gerade gemerkt das ich in meinem Interrupt-Handler Interrupts ausführen kann, obwohl ich den Interrupt über ein Interrupt-Gate aufruhfe. Ein Interrupt-Gate erlaubt doch aber eigentlich keine Interrupt, dachte ich. Ich dachte fürs erlauben ist ein Trap-Gate zuständig. Auch wenn ich ganz oben im Interrupt ein cli schreibe, lassen sich Interrupts aufrufen. Ich teste das nämlich indem ich das rax Register auf Null setze, ein "int 30h" aufrufe der rax auf 2 setzt. Und unter dem "int 30h" mache ich ein jmp $. Dann schaue ich mir den Wert von rax in Bochs an. Und der Wert ist 2, also muss der "int 30h" ja aufgerufen worden sein. Das soll doch aber ein Interrupt-Gate verhindern!? Kann mir das jemand erklären?
bitmaster