Nachdem der Interrupt erkannt wird, startet der Mikroprozessor einen speziellen Befehlszyklus, den Interrupt Acknowledge Machine Cycle (INA). Das spezielle an diesem Befehlszyklus ist, daß anstelle von /RD /INTA ausgesendet wird. Am Adreßbus wird trotzdem der Inhalt des Programmzählers gelegt, dies bewirkt jedoch nichts. Wenn /INTA ausgesendet wird, muß die externe Logik den Opcode des auszuführenden Befehls auf den Datenbus legen. Wenn der Opcode das erste Byte eines Mehrbyte-Befehls ist, dann werden zusätzliche /INTA Impulse erzeugt. Ein logischer Befehl wäre z.B. ein Call Befehl, da der Prozessor bei diesem Befehl den Programmzähler am Stapel absichert, bevor er zur angegebenen Adresse springt. Dieser Call-Befehl könnte vom 8259A, einem programmierbarem Interruptcontroller (im 85er mode programmiert) angelegt werden.
Signale M2 (MR) M1 (INA) M2 (INA) M3 (INA) M4 (MW) M5 (MW) M1 (OF)
T2 T3 T1 T2 T3 T4 T5 T6 T1 T2 T3 T1 T2 T3 T1 T2 T3 T1 T2 T3 T1 T2
CLK
INTR
/INTA
IO /M, S1,S0
A8-A15
AD0-AD7
ALE
/RD
/WR
Timing Diagramm bei Verwendung eines 8085 Prozessors und eines 8259A Interruptcontrollers
Nachdem der Prozessor den Opcode erhalten hat, beschließt er in unserem Fall, daß der Call-Befehl 2 weitere Bytes benötigt. Deshalb sind die nächsten Befehlszyklen 2 weitere INA-Zyklen, um das zweite und dritte Byte des Befehls zu lesen. Da nun der gesamte Befehl eingelesen ist, wird dieser ausgeführt. Als Befehl kann jeder beliebige Befehl außer enable oder disable Interrupt verwendet werden. Die logischsten Befehle wäre ein RESTART oder CALL Befehl, da hier der Programmzähler automatisch abgesichert wird. Innerhalb der 3 INA Zyklen wurde ein erhöhen des Programmzählers verhindert, d.h. der korrekte Wert kann während M4 und M5 abgesichert werden.
Während M4 und M5 führt die CPU Memory Write machine cycles aus, um das höher- und niederwertigere Byte des Programmzählers abzusichern. Danach werden die zwei Bytes, die in M2 und M3 eingelesen wurden in den Programmzähler geschrieben. Das hat den gleichen Effekt, wie ein Sprung zu dieser Adresse.
|