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)