/ / Aufruf von Int 13h in einer ISR - Assembly, Keyboard-Hook, Interrupt-Handling, Real-Modus, isr

Rufe Int 13h in einer ISR auf - Assembly, Keyboard-Hook, Interrupt-Handling, Real-Modus, ISR

Ich habe eine ISR für Int 9h von Assembly in geschriebenRealer Modus. In dieser ISR rufe ich INT 13h, AH = 0x02 auf, um Daten auf die Festplatte zu schreiben. Daten werden jedoch nicht auf die Festplatte geschrieben. Auch int 13h, ah = 0x02 funktioniert nicht (Daten von der Festplatte lesen). Nach dem Aufruf int 13h ist Carry Flag aktiviert, aber AH und AL sind Null. Wenn ich diesen Code aus der ISR heraus verwende, funktioniert das! Warum funktioniert INT13h in einer ISR nicht, aber andere Interrupts, zum Beispiel INT10h, funktionieren korrekt?

Antworten:

2 für die Antwort № 1

Die einfache Antwort ist dasint 13hwird ohne den Festplatten-Hardware-Interrupt IRQ 5 nicht erfolgreich abgeschlossenint 0Dhdie nicht auftreten wird, bis der PIC am Ende des Tastatur-Hardware-Interrupts bestätigt wirdint 9h.

Die glückliche Antwort ist, dass es viel einfacher zu bedienen ist int 16h ah=0 auf einen Tastendruck warten.