Autor Thema: INT ruft INT auf und kehrt zurück?  (Gelesen 5077 mal)

LowMH

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« am: 30. August 2009, 20:16 »
Ich bin gerade schwer am überlegen, ob es möglich ist, dass ein Software-Interrupt (Nummer 1) einen anderen Software-Interrupt (Nummer 2) aufruft und dann Interrupt Nummer 2 zu Interrupt Nummer 1 zurückkehrt, Interrupt Nummer 1 noch einigen Code abarbeitet und dann erst zum regulären Programm zurückkehrt?
Ich hoffe, ich habe mein Problem einigermaßen verständlich erklärt.

XanClic

  • Beiträge: 261
    • Profil anzeigen
    • github
Gespeichert
« Antwort #1 am: 30. August 2009, 20:33 »
Soweit Interrupt Nummer 1 als Trap-Gate in der IDT eingetragen ist, sollte das möglich sein. Sonst weiß ich nicht, ob man Software-Interrupts auch mit gelöschtem Interruptflag aufrufen kann...

LowMH

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 30. August 2009, 20:43 »
Erstmal danke für die schnelle Antwort, aber mein Betriebssystem befindet zur Zeit noch im Realmode (also noch nicht mit IDT sondern IVT). Protected-Mode kommt später. Gibt es da eine Möglichkeit?

Ich möchte nämlich (wenn möglich) einige der System-Funktionen (z.B. Zugriff auf die Festplatte mittels LBA) auf den BIOS-INTS aufbauen. Diese System-Funktionen sollen den INT 32h nutzen (z.B. Zugriff auf Festplatte über LBA: 1. Umrechnen der LBA-Adresse in das CHS-Format, 2. Zugriff auf die Festplatte mittels INT 13h, 3. Rückkehr zur aufgerufenen INT 32h-Funktion und Abarbeitung von einem bisschen Programmcode, 4. Rückkehr zum Programmcode des Betriebssystems).
« Letzte Änderung: 30. August 2009, 20:52 von LowMH »

XanClic

  • Beiträge: 261
    • Profil anzeigen
    • github
Gespeichert
« Antwort #3 am: 30. August 2009, 21:49 »
Eigentlich sollte es da keine Probleme geben. Zur Sicherheit kannst du ja an den Anfang deines Interrupthandlers noch ein "sti" setzen.

LowMH

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 30. August 2009, 22:41 »
Danke.

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 30. August 2009, 23:41 »
Sonst weiß ich nicht, ob man Software-Interrupts auch mit gelöschtem Interruptflag aufrufen kann...
Beim Interrupt Flag geht es nur um Hardwareinterrupts. Exceptions und Softwareinterrupts gehen immer.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

 

Einloggen