Interrupts
-
Ich habe ein kleines Betriebssystem geschrieben (zu Lehrzwecken an der Uni) und wir hantieren mittlerweile mit Interrupts rum. In die Vektortabelle der Interrupts scheiben wir eine Art Panic Methode (die durch eine int Variable mitunter die Nummer des Interrupts übergeben bekommen). Derzeit behandeln wir lediglich einen der Interrupts (den Timer). Alle anderen schalten wir softwaretechnisch ab.
Nun funktioniert das soweit schon ganz gut. Nur kommt hin und wieder ein Interrupt dazwischen (vermutlich einer, den wir nicht abschalten können).
Soweit ich mich informiert habe, kommt zum Beispiel bei einer Division durch 0 der Interrupt 0. Diese Interrupts kann man eben nicht ausschalten. Wir bekommen nun den Interrupt 39, der uns schier zum Verzweifeln bringt. Was bedeutet ein Interrupt 39?
Ich habe bereits im Internet eine tolle Seite über Interrupts gefunden.
http://www.ctyme.com/intr/int.htm
Nur bringt und das auch keineswegs weiter. Weiß jemand von Euch, was dieser zu bedeuten hat?mfg maddin
-
Ich schätze mal, bei dem Int 39 wird eine spezielle Routine an einer definierten Speicheradresse angesprungen, die Floating-Point-Berechnungen durchführt. Dazu nimmt die Routine irgendwelche Werte/Parameter aus dem Stack (oder ggf. Registern) und führt anschließend hiermit irgendwelche Berechnungen durch, wobei die Art der Berechnung ggf. auch als Parameter übergeben wird. Es ist eine sogenannte SW-Emulation, mit dessen Hilfe im Prinzip der Befehlsvorrat des Prozessors erweitert wird.
Das mal so als ganz allgemeine Erläuterung, wie ich die Info hinter deinem Link verstanden habe, aber vielleicht wissen ja andere darüber Genaueres ....