18.12.2012 Aufrufe

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Rechnergrundlagen Teil 2 - 39 - Prof. Dipl.-Ing. Komar<br />

Interrupt 21h, Funktion 08h Zeicheneingabe ohne Ausgabe<br />

Ein Zeichen wird vom Standard -Eingabegerät gelesen, ohne allerdings auf dem Standard -Ausgabegerät ausgegeben zu<br />

werden. Steht zum Zeitpunkt des Funktionsaufrufs kein Zeichen zur Verfügung, wartet die Funktion, bis ein Zeichen<br />

verfügbar ist.<br />

Da die Standard -Eingabe auf ein anderes Gerät oder auf eine Datei umgeleitet werden kann, muß das eingelesene Zeichen<br />

nicht unbedingt der Tastatur entstammen. Werden die übergebenen Zeichen einer Datei entnommen, so gibt es für das<br />

aufrufende Programm keine Möglichkeit festzustellen, ob bereits alle Zeichen aus dieser Datei ausgelesen sind, das<br />

Dateiende also schon erreicht ist.<br />

Eingabe AH = 08h<br />

Ausgabe AL = Eingelesenes Zeichen<br />

Werden erweiterte Tastatur-Codes eingelesen, wird zunächst der Code 0 im AL-Register zurückgeliefert. Die Funktion muß<br />

dann erneut aufgerufen werden, um den eigentlichen Code zu lesen.<br />

Wird bei Aufruf dieser Funktion ein Control-C-Zeichen entdeckt, wird der Interrupt 23h aufgerufen.<br />

Der Inhalt der Register AH, BX, CX, DX, SI, DI, BP, CS, DS, SS, ES und des Flag-Registers wird durch diese Funktion<br />

nicht verändert.<br />

Interrupt 21h, Funktion 09h Ausgabe einer Zeichenkette<br />

Durch Aufruf dieser Funktion wird eine Zeichenkette auf dem Standard -Ausgabegerät ausgegeben. Da dieses Gerät auf ein<br />

anderes Gerät oder in eine Datei umgeleitet werden kann, besteht keine Gewähr, daß die Zeichenkette auf dem Bildschirm<br />

erscheint. Falls die Ausgabe in eine Datei umgeleitet wird, besteht für das aufrufende Programm keine Möglichkeit<br />

festzustellen, ob das Medium (Diskette, Festplatte), auf dem sich die Datei befindet, bereits voll ist und dadurch die<br />

Zeichenkette nicht mehr in die Datei geschrieben werden kann.<br />

Eingabe AH = 09h<br />

DS:DX = FAR-Zeiger auf die Zeichenkette<br />

Ausgabe keine<br />

Die Zeichenkette muß im Speicher als eine Folge von Byte gespeichert sein, die jeweils den ASCII-Code des auszugebenden<br />

Zeichens enthalten. Das Ende der Zeichenkette wird dem DOS durch ein $-Zeichen (ASCII-Code 36) signalisiert.<br />

Enthält die Zeichenkette Steuercodes wie Backspace, Carriage Return oder Line Feed, werden diese auch als solche<br />

behandelt.<br />

Nur der Inhalt des AL-Registers wird durch den Aufruf dieser Funktion verändert.<br />

Interrupt 21h, Funktion 0Ah Eingabe einer Zeichenkette mit Ausgabe<br />

Durch Aufruf dieser Funktion wird eine bestimmte Anzahl von Zeichen von dem Standard -Eingabegerät eingelesen, in einen<br />

Puffer übertragen und auf dem Standard -Ausgabegerät ausgegeben. Die Ausführung der Funktion wird beendet, sobald der<br />

Tastencode der [Return]-Taste (13) empfangen wird. Der Code dieser Taste wird dann als letztes Zeichen in den Puffer<br />

eingetragen. Da die Standard -Eingabe von der Tastatur auf ein anderes Gerät oder auf eine Datei umgeleitet werden kann,<br />

müssen die eingelesenen Zeichen nicht unbedingt der Tastatur entstammen. Werden die übergebenen Zeichen einer Datei<br />

entnommen, so gibt es für das aufrufende Programm keine Möglichkeit festzustellen, ob bereits alle Zeichen aus dieser Datei<br />

ausgelesen sind, das Dateiende also schon erreicht ist.<br />

Eingabe AH = 0Ah<br />

DS:DX = FAR-Zeiger auf den Puffer<br />

Ausgabe keine<br />

Das erste Byte des Puffers muß vor dem Funktionsaufruf mit der maximalen Anzahl von Zeichen geladen werden, die<br />

eingelesen werden dürfen (inklusive des Carriage Return am Ende).<br />

In das zweite Byte des Puffers trägt DOS nach Beendigung der Eingabe die Anzahl der eingelesenen Zeichen ohne das<br />

Carriage Return ein. Erst danach folgen die eingelesenen Zeichen. Der Puffer muß damit mindestens Platz für die<br />

angegebene Maximalzahl von Zeichen plus zwei Byte bieten.<br />

Ist die vorletzte Speicherstelle des Puffers erreicht, wird bei der Eingabe von weiteren Zeichen ein Piepston ausgegeben und<br />

nur noch das Return -Zeichen als Abschluß der Eingabe akzeptiert.<br />

Erweiterte Tastatur-Codes belegen im Puffer 2 Byte. Das erste Byte enthält den Code 0 und das zweite den Code der<br />

erweiterten Taste. Wird während der Eingabe ein Control-C-Zeichen entdeckt, wird der Interrupt 23h aufgerufen.<br />

Die Eingabe kann mit Hilfe der Backspace- und der Cursor-Tasten editiert werden, ohne daß diese Tasten im Puffer<br />

abgespeichert werden.<br />

Der Inhalt der Prozessor-Register wird durch diese Funktion nicht verändert. Dies gilt auch für das Flag-Register.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!