Maschinensprache i8086/ ANTWORT

Aus Wikibooks

Theorie:  EinleitungMaschinenspracheAssemblerZahlensystemeRAM-AdressenBWSDebugCPU-RegisterEinfache BefehleStringbefehleInterruptsI/O-Ports
Versuch:  BWS1BWS2Hallo WeltBootsektorMBR
Nützlich: BefehlslistePAUSEFilter
Analyse:  Bootloader


Dokumentation zum Programm ANTWORT.COM[Bearbeiten]

Das Kurzprogramm ANTWORT.COM kann in Stapeldateien für Benutzerabfragen verwendet werden. ANTWORT.COM wartet auf das Betätigen einer Taste und liefert den Tastencode der gedrückten Taste als ERRORLEVEL. Diese Rückmeldung kann in IF ERRORLEVEL ... Zeilen ausgewertet werden.

Auch ohne Auswertung ist ANTWORT.COM als Ersatz für den Befehl PAUSE geeignet: ANTWORT.COM erzeugt keine Ausschrift. Man kann mit einem vorangestellten ECHO Befehl den Standardtext ("Bitte eine Taste drücken") oder einen anderen Text verwenden.

Bei erweitertem Tastencode (Funktionstasten, Tastenkombinationen u.a.) ist das erste Byte = 0 und es wird das zweite Byte gemeldet, z. B. Semikolon sowie F1 = 59, Null sowie ALT-B = 48

Die Datei ANTWORT.COM wird erzeugt, indem man die Zeilen zwischen den beiden Linien ---- als Datei "ANTWORT.SCR" herauslöst oder genau abtippt und mit dem Befehl DEBUG < ANTWORT.SCR startet:

------------ ANTWORT.SCR --------------
a 100
mov ah,8
int 21
cmp al,0
jnz 10a
int 21
mov ah,4c
int 21
 
u 100 10d
r cx
e
n antwort.com
w
q
---------- Ende von ANTWORT.SCR -------

Alternativ kann man die Datei ANTWORT.COM auch erzeugen, indem man den Befehl DEBUG eingibt und dann die Zeilen zwischen den beiden Linien ---- eintippt.


Beispiel für die Verwendung des Programms ANTWORT.COM[Bearbeiten]

Da der if - Befehl nach einem ERRORLEVEL sucht, der größer oder gleich der angegebenen Zahl ist, sind Tastencodes in fallender Folge zu überprüfen. Sind die Tastencodes nicht in zusammenhängender Folge, müssen auch die fehlenden Tastencodes überprüft werden!

Beispiel-Stapeldatei zum Formatieren

Diese kleine Stapeldatei fragt, welches Laufwerk Sie formatieren wollen. A: und B: sind erlaubt, C: und alle anderen Buchstaben sind verboten.

@echo off
echo Welches Laufwerk wollen Sie formatieren? (Großbuchstabe!)
antwort
if not errorlevel 65 echo Zeichencode zu klein, A - C sind erlaubt
if errorlevel 65 if not errorlevel 66 format a:
rem  Erstes  IF wählt alle Tasten mit Code größer gleich 65,
rem  zweites IF NOT wählt alle Tasten mit Code kleiner 66.
if errorlevel 66 if not errorlevel 67 format b:
if errorlevel 67 if not errorlevel 68 echo Format C: ist verboten
if errorlevel 68 echo Zeichencode zu groß, nur A bis C ist erlaubt