Eine Alternative zum Makroassembler

Es gibt jedoch noch einen kürzeren Weg, hocheffiziente Programme ohne »Umweg« über einen Makroassembler, Linker und »EXE-to-COM«-Umwandler zu entwickeln: DEBUG.

Bei jüngeren DOS-Versionen kann der Befehl auch SYMDEB heißen. Wir sprechen grundsätzlich von DEBUG – gemeint sind natürlich beide Varianten. Dabei handelt es sich konkret um eine kleine Zweckentfremdung des externen DOS-Befehls. DEBUG diente nämlich ursprünglich zur Fehleranalyse – zum »Debuggen« kritischer oder fehlerverdächtiger Anwendungen. Debuggen wurde übrigens vom englischen »Bug« abgeleitet. Vor einigen Jahrzehnten verbrachten nämlich einmal Top-Programmierer ihre wertvolle Zeit damit, einen klitzekleinen Fehler in einem mehrere Quadratmeter umfassenden Computer zu suchen. Eine harmlose Wanze (Englisch bug) war das Problem. Im Laufe der Jahre entstanden Analyse-Programme, die wichtige Routinearbeiten bei der Fehlersuche übernahmen – für die DOS-Welt wurde unter anderem DEBUG entwickelt.

Die wenigsten Anwender verwenden DEBUG. Meist verstaubt es ungenutzt auf einer der Systemdisketten. Wer analysiert schon (erfolgreich) hochkomplizierte Maschinenprogramme? Profis haben in aller Regel komfortablere Werkzeuge, z. B. Codeview von Microsoft, den Turbo-Debugger von Borland, die integrierten Debugger der neusten Hochsprachen-Compiler von Borland, den Sourcer von V Communication oder den Analyzer von Quaid Software. Für Einsteiger ist das Programm schlichtweg zu kompliziert und auch gefährlich. Die wohl gutgemeinte Möglichkeit, mit DEBUG beliebige Programme oder Hardwarekomponenten bis auf das letzte Bit auseinandernehmen zu können, bleibt deshalb eher dem harten Kern der PC-Programmierer-Elite vorbehalten.

Aber auch weniger Erfahrene können mit ein wenig Übung durchaus Erfolg haben. DEBUG unterstützt nämlich neben der direkten Eingabe auch das sogenante Piping: Tastatureingaben, die Sie in DEBUG selbst tätigen würden, können Sie in Dateien aufzeichnen und mit Hilfe des Umleitungszeichen » < « durch den Debugger jagen. Da die meisten Anweisungen neben ein paar wenigen DEBUG-Befehlen überwiegend Mnemonics, also konkrete Prozessor-Kommandos sind, können Sie ohne Einschränkungen von kleinen Assemblerroutinen reden.

Lassen Sie uns mit einem einfachen aber wirkungsvollen Beispiel beginnen. Dabei handelt es sich noch nicht um ein Assemblerprogramm. Wir nutzen lediglich eine vorhandene Resource unseres PCs: Rufen Sie DEBUG oder SYMDEB durch die Eingabe des entsprechenden Namens auf. Wenn der Bindestrich als Bereitschaftszeichen (Prompt) erscheint, geben Sie

G=FFFF:0

ein. Drücken Sie die Enter-Taste. Keine Panik! Es geht zwar hart zur Sache, aber Ihr PC geht nicht kaputt. Es passiert genau das, was beim Einschalten Ihres Computers oder beim sogenannten Warmstart (Tastenkombination [Strg] + [Alt] + [Entf]) geschieht: Ein Reset wird ausgelöst – kleine Ursache, große Wirkung.

Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot