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 - 33 - Prof. Dipl.-Ing. Komar<br />

7.2.3 DEBUG - Assemblierung aus einer Textdatei<br />

Die direkte Eingabe von Assemblerbefehlen in DEBUG ist nur für kurze Programmtests handhabbar.<br />

Komfortabler ist es, die Quelltexte ( als ASCII-Datei !!! ) mit einem Texteditor (z.B. DOS - EDIT ) zu<br />

erstellen und aus einer Quelldatei in einem DEBUG-Durchlauf zu übersetzen.<br />

In der Quelldatei müssen die steuernden DEBUG-Anweisungen neben den Assemblerbefehlen so enthalten sein,<br />

als würde man direkt in DEBUG arbeiten.<br />

Dann wird der Debugger unter Verwendung der DOS–I/O–Umleitung gestartet. Und zwar wird die Eingabe für<br />

DEBUG von der Tastatur auf die Quelldatei umgeleitet und die von DEBUG erzeugte Text -Ausgabe wird nicht<br />

auf den Bildschirm sondern in eine Ausgabedatei geschrieben.<br />

> DEBUG < VERSION.ASM > VERSION.LST<br />

VERSION.ASM steht für die Quelldatei, während in VERSION.LST alle Meldungen während der Assem -<br />

blierung gespeichert werden. Damit liest DEBUG die Eingaben nicht mehr von der Tastatur, sondern aus der<br />

Datei VERSION.ASM. Die Textausgaben werden in die zweite Datei (VERSION.LST) umgeleitet.<br />

Interessant ist in diesem Zusammenhang noch eine undokumentierte Eigenschaft von DEBUG. Normalerweise<br />

lassen sich in DEBUG keine Kommentare eingeben. Ist jedoch der ASSEMBLE-Befehl aktiv, akzeptiert<br />

DEBUG Kommentarzeilen. Alle Texte mit einem vorangestellten Semikolon werden als Kommentar betrachtet<br />

und überlesen. Lediglich bei DB- und DW-Anweisungen erfolgt eine Fehlermeldung, so daß DEBUG hier keine<br />

Kommentare akzeptiert.<br />

Im folgenden Programmbeispiel bewirkt die erste " A CS:100" Anweisung, daß DEBUG den hinter Semikolons<br />

erzeugten Kommentarkopf überliest.<br />

Die Daten werden in den Bereich ab CS:200 assembliert. Dies geschieht im Beispiel durch die ORG–Anwei –<br />

sungen (ORG = Origin ) hinter deren Offset-Adresse die jeweiligen Textstrings im ASCII-Code plaziert werden.<br />

Um den DEBUG-Assembliermodus zu verlassen, muß eine Leerzeile eingegeben werden, damit deren RETURN<br />

- Zeichen das aktive A-Kommando abbricht<br />

Wichtig ist daher auch, daß in einem Block mit Assembleranweisungen keine Leerzeilen auftreten, da diese<br />

auch den ASSEMBLE-Mode beenden.<br />

Mit der W - Anweisung lassen sich 200h Byte ab CS: 100 speichern. Die Sequenz:<br />

N name.COM<br />

R BX<br />

0 ??????<br />

R CX<br />

200 ??????<br />

W<br />

Q<br />

ist deshalb in jedem Quellprogramm, getrennt durch eine Leerzeile, an den Assemblercode anzuhängen.<br />

Eine Debug-Assemblierung aus einer Textdatei könnte bei Verwendung des DOS-Editors EDIT folgenden<br />

Ablauf haben.<br />

> edit VERSION.ASM ; Erstellen der Textdatei in EDIT<br />

> debug VERSION.LST ; DEBUG-Aufruf mit Umleitungen<br />

> more VERSION.LST ; Listing am Bildschirm ansehen ( Fehler u. Adressen )<br />

> debug VERSION.COM ; in DEBUG testen oder mit G starten<br />

> VERSION ; fehlerfreies Programm von Kommandoebene aufrufen<br />

Mit mehrmaligem Durchläufen von edit–debug–more–edit... lassen sich die Fehler beseitigen und vor allem<br />

die tatsächlichen absoluten Adressen einfach ermitteln ( denn symbolische Adressierung mit Labeln ist im<br />

DEBUG-Assembler nicht möglich ).<br />

Dazu setzt man Schätzwerte in die benötigten Adresswerte der Sprungbefehle oder Unterprogrammaufrufe und<br />

startet den ersten DEBUG-Assemblierlauf, sucht mit dem more-Befehl aus der name.LST - Datei die<br />

tasächlichen Adressen, fügt mit dem Editor edit diese Adressen in der Quelltextdatei name.ASM ein und startet<br />

einen erneuten DEBUG-Assemblierlauf.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!