Home

Der Debugger DEBUG

Zurück zur Assemblerauswahlseite

8086 Assembler (MS-DOS):
Programmbeispiel zum Assemblieren mit DEBUG

Das kleine Programm JN.COM nimmt ein einziges Zeichen von der Tastatur entgegen. Wurde die Taste "J" angeschlagen, liefert es den Returncode 0 ab. Wurde eine andere Taste angeschlagen, kehrt es mit dem Returncode 1 zurück. Man kann es benutzen, um in einer BAT-Steuerdatei eine Entscheidung durch Eingabe von „J” oder „N” abzufragen. Als „J” nimmt das Programm J oder j entgegen. Sonstige Tasten gelten als „N”.

Das Programm ist nur 18 Bytes lang.

Eine passende BAT-Datei zur Benutzung des Programmes kann diesen Inhalt haben:

@echo off
echo Bitte J oder N eingeben!
jn.com
if errorlevel 1 echo Ihre Antwort war: Nein
if errorlevel 1 goto fertig
echo Ihre Antwort war: Ja
:fertig

Dass Programm lässt sich mit DEBUG assemblieren und lauffähig abspeichern: Vor dem Aufruf von DEBUG gab es noch keine Datei "JN.COM". Nach dem Assemblieren wird das Registerpaar BX:CX auf den Inhalt 0000:0012 gestellt. Dies ist die Programmlänge in hexadezimaler Schreibweise. Tastatureingaben sind in blauer Schrift dargestellt.
D:\dos\ML\Test>debug jn.com
-a
1A9D:0100 mov ah,8
1A9D:0102 int 21
1A9D:0104 or al,20
1A9D:0106 cmp al,6a
1A9D:0108 mov al,0
1A9D:010A jz 10e
1A9D:010C inc al
1A9D:010E mov ah,4c
1A9D:0110 int 21
1A9D:0112
-r cx
CX 00D6
:12
-r
AX=0000  BX=0000  CX=0012  DX=0000  SP=FFFE  BP=0000  SI=0000  DI=0000
DS=1A9D  ES=1A9D  SS=1A9D  CS=1A9D  IP=0100   NV UP EI PL NZ NA PO NC
1A9D:0100 B408          MOV     AH,08
-w
Writing 00012 bytes
-q

Dass Programm als Assembler-Quellprogramm:
.MODEL TINY
;=====================================
; Ganz kleines Assemblerprogramm
;======================================
;
.CODE
        ORG         100h

_start: mov ah,08h   ;lese 1 Zeichen von Tastatur
        int 21h
        or  al,20h   ;Eingabe wird Kleinschrift
        cmp al,'j'
        mov al,0     ;Return-Code auf 0
        je  fertig
        inc al       ;Return-code auf 1 falls nicht "j"
fertig: mov ah,4ch
        int 21h

END     _start

Letztes Upload: 18.10.2016 um 13:13:59