Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: LowMH am 30. August 2009, 20:16

Titel: INT ruft INT auf und kehrt zurück?
Beitrag von: LowMH 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.
Titel: Re: INT ruft INT auf und kehrt zurück?
Beitrag von: XanClic 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...
Titel: Re: INT ruft INT auf und kehrt zurück?
Beitrag von: LowMH 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).
Titel: Re: INT ruft INT auf und kehrt zurück?
Beitrag von: XanClic 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.
Titel: Re: INT ruft INT auf und kehrt zurück?
Beitrag von: LowMH am 30. August 2009, 22:41
Danke.
Titel: Re: INT ruft INT auf und kehrt zurück?
Beitrag von: kevin 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.