UNTERBRECHUNGEN 8086

 

Eine Unterbrechung ist ein, dem Rechnersystem zugeschickter Zeichen, welches die Erscheinung eines ungewöhnlichen Ereignisses  bekanntgibt.

 

Es können maximal 256 Unterbrechungen existieren. Jede Unterbrechung hat eine Kodrutine beigelegt, das "Rutine zur Behandlung der Unterbrechung" genannt wird (RBU), und welches bei der Erscheinung der Unterbrechung ausgeführt wird. Es sind nicht alle 256 Unterbrechungen definiert (es gibt nicht zu allen 256 Unterbrechungen beigelegte Rutine).

 

Bei der Erscheinung einer Unterbrechung findet folgendes statt:

 

Die Regel: die Behandlung einer Unterbrechung (Ausführung der beigelegten Rutine) wird nur zwischen zwei aufeinanderfolgenden Maschienenbefehle gemacht.

 

Nach den Grunden, die eine Erscheinung eines Zeichens (Signal) bezüglich einer Unterbrechung generieren, können die Unterbrechungen wie folgt eingetetilt werden:

 

a.) Aussere Unterbrechungen des Prozessors:

Beispiel:           - Drücken einer Taste

- Beenden einer Ein-/Ausgangoperation

 

b.) Innere Unterbrechungen des Mikorprozessors:

Beispiel:           - Teilung durch Null

- Adressierungsversuch einer nicht existierenden Speicherzone

- Ausführungsversuch eines Befehls, mit einem inexistierenden Kode.

 

Im allgemeinen (das kann man auch vermeiden) wird das Programm, das gerade läuft, beim Erscheinen einer Unterbrechung beendet und die Kontrolle ist dem Betriebssystem übergeben.

 

Im Abhängigkeit von der Ebene auf welches die Unterbrechungen definiert sind, sind diese wie folgt zu unterteilen:     

 

a.) Hard-Unterbrechungen.

Die Rutinen dieser Unterbrechungen sind von den Rechnerprojektanten geschrieben und sind in den physischen Chips des Rechners gespeichert.

Bsp:

-         Unterbrechung 00h - wird in Folge eines Versuchs durch 0 zu teilen generiert.

-         Unterbrechung 01h - wird nach jeden Maschienenbefehl gerufen, wenn TF eingestellt ist. Ist vom Turbo Debugger benützt.

-         Unterbrechung 02h - Paritätsfehler beim Zugreifen des RAM Speichers.

 Zum Beispiel kann man eine Rutine dieser Unterbrechung als Zweckslösung beim Stromausfall verwenden, um die Daten vom Speicher zu retten.

-         Unterbrechung 08h - "Uhrunterbrechung". Wird jedes 55 Milisekunden generiert. Ist für die Programmierung bestimmter Aktionen benützt, die periodisch stattfinden sollen.

 

b.) BIOS - Unterbrechungen. Dessen Rutinen sind von den BIOS Projektanten des Computers geschrieben.

  Bsp:

            - Unterbrechung 10h - erlaubt das Arbeiten mit dem Bildschirm auf graphischer Art (und selbstverständlich auch in Text-Modus)

            - Unterbrechung 11h - bietet Information über die installierte Ausrüstung des Systems an.

            - Unterbrechung 12h - Information über die Dimension des RAM Speichers.

            - Unterbrechung 13h - Arbeit mit Hard- und Floppydisk.

 

c.) DOS Unterbrechungen. Dessen Rutinen sind von den Systemprojektanten geschrieben.

            Bsp:

            - Unterbrechung 20h - Beenden eines Programms

            - Unterbrechung 21h - bietet alle Systemfunktionen, die von Dos angeboten werden, an.

            - Unterbrechung 33h - Arbeit mit der Mouse

 

d.) Vom Programmierer definierte Unterbrechungen

 

Die Rutienen einiger Soft Unterbrechungen (BIOS und Dos) können die generierte Unterbrechung auf verschiedene Arten behandeln, das von

einem bestimmten Wert, dass in AH spezifiziert wird, abhängt.

Man sagt, die bezügliche Unterbrechung bietet mehrere Funktionen, Dienstleistungen an.

 

Beispiel1:

 Die Funktion 02h der Unterbrechung 21h lässt den Ausdruck eines Charakters am Bildschirm zu. Die Unterbrechung erwartet im Register

 AH die Kode der Funktion (02h), und im Register DL, die ASCII Kode des Charakters, welchen man ausdrücken möchte.

 

Aufrufform:

  mov ah, 02h

  mov dl, 'A'

  int 21h

 

Das Effekt dieser Befehlszeilen ist: Charakter "A" wird am Standard-Ausgang (Bildschirm) ausgedrückt.

 

Beispiel2:

 

Die Funktion 00h der Unterbrechung 10h, lasst den Wechsel vom graphischen zum Text Modus des Bildschirms zu, sowie den Wechsel der

Resolution des Bildschirms. Die Unterbrechung erwartet in AH die Kode der Funktion (00h), und im Register AL, die neue Arbeitsweise des

Bildschirms.

 

mov ah, 00h

mov al, 12h

int 10h

 

Dass Effekt dieser Befehlszeilen ist das Wechsel der Arbeitsweise in graphischer Modus, zu einer Resolution von 640x480 Pixeln und

Arbeitsweise mit 16 Farben.

 

Bemerkungen:

- Komplette Liste mit Unterbrechungen und gewünschten Funtkionen findet man im Norton Guide.

  Es ist angemessen ein ordentliches durchlesen (nicht auswendiglernen) aller Unterbrechungen.

  Man muss nicht alle Unterbrechungen auswendig lernen, der Student soll aber in der elektronischen Unterlage die nötigen Anweisungen

  finden können, um eine gegebene Aufgabe zu lösen.

- Einige Unterbrechunegen sind als "reserviert" bezeichnet. Es handelt sich hierbei von Unterbrechungen, für welche deren Projektanten die

  Spezifikationen nicht öffentlich gemacht haben, weil entweder deren Benützung zu unvorhersehbaren Aktionen führen konnte, oder deren

  Aktion von einer Version zum anderen sich ändern könnte. Diese Unterbrechungen sollte man vermeiden.

 

- Einige Unterbrechungen könnten nicht so unter Windows funktionieren, wie es erwartet. Man sollte in diesem Fall die Bibliographie

  konsultieren (www.google.com)