6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
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 - 29 - Prof. Dipl.-Ing. Komar<br />
7.2.2 Arbeiten mit DOS-DEBUG<br />
Nach dem Aufruf des Programms meldet sich der Kommandointerpreter mit dem typischen Prompt-Zeichen “–“<br />
Das Debug-Programm kann mit dem Kommando q verlassen werden.<br />
Um direkt mit einem bereits vorhandenen File vom Typ name.com arbeiten zu können, welches anschließend<br />
auch durch den einfachen Aufruf unter DOS ausgeführt und getestet werden kann, ist es zweckmäßig, sich ein<br />
bereits verfügbares (funktionierendes) Programm bzw. File zunächst zu kopieren, um es dann mit dem<br />
Programm DEBUG nach eigenen Wünschen zu verändern.<br />
Das File more.com, welches ebenfalls als Standardprogramm zum Umfang von DOS dazugehört, eignet sich<br />
z.B. dazu wegen s<strong>eines</strong> geringen Umfangs besonders.<br />
Es wird z.B. per<br />
> copy c:\dos\more.com c:\test.com (oder copy c:\windows \command\more.com c:\test.com)<br />
kopiert und kann per<br />
> debug test.com bearbeitet werden.<br />
Hierzu ist es wichtig zu wissen, daß in COM-Files stets ab der Adresse CS:0100h der ausführbare<br />
Maschinencode abgelegt ist und das Programm beim Aufruf unter DOS stets beginnend mit dieser Adresse<br />
gestartet wird.<br />
Der Wert von CS (Codesegment-Zeiger) ist jeweils abhängig von der nächsten freien Adresse im Speicher des<br />
Rechners. Der Wert selbst ist unerheblich, da COM -Files stets kleiner als 64 KB sein müssen und sich darin<br />
Code-, Daten - und Stackbereich befinden müssen.<br />
Bevor man z.B. mit dem Befehl a 100 ab der Startadresse ein neues Programm (an der Stelle des alten)<br />
assembliert und im Speicher ablegt, kann man sich das ursprüngliche Programm (more) zunächst mit Hilfe des<br />
Befehls u 100 in disassemblierter Form ausgeben lassen.<br />
Hat man ein eigenes Programm in dieser Weise erstellt, so kann man es einfach per Kommando w innerhalb<br />
von DEBUG auf die Festplatte bzw. Floppy, von der es gelesen wurde, zurückschreiben, das Programm DEBUG<br />
mit dem Kommando q verlassen und das Programm test per Aufruf ausführen.<br />
Ein letzter Punkt, welcher hierbei beachtet werden muß, ist der, daß als letzte Befehle stets<br />
mov ah,4c und<br />
int 21 ausgeführt werden müssen.<br />
Dieser DOS-Systemaufruf stellt sicher, daß nach der Ausführung des "neuen" COM-Files korrekt zum<br />
Betriebssystem DOS zurückgekehrt wird.<br />
Programmerstellung per DOS-DEBUG<br />
Zur Beschaffung <strong>eines</strong> DOS-Files im COM -Format wird das File more.com, welches in seiner ursprünglichen<br />
Funktion die bildschirmweise Ausgabe <strong>eines</strong> Textfiles leistet, einfach kopiert. Das kopierte Programm mit dem<br />
Namen test.com wird anschließend derart verändert, daß es lediglich das Zeichen “ 0 “ auf dem Bildschirm<br />
ausgibt und anschließend zu DOS zurückkehrt.<br />
>copy more.com test.com Kopieren des Programmes more.com nach test.com<br />
>debug test.com Aufruf des Programmes debug.com mit dem<br />
Parameter test.com<br />
-u 100<br />
44B0:0100 E8B002 CALL 03B3 Hier steht der erste Maschinenbefehl, welcher<br />
44B0:0103 7307 JNB 010C beim Aufruf von more bzw. test ausgeführt<br />
44B0:0105 E8A603 CALL 04AE wird.<br />
. . .<br />
-a 100<br />
44B0: 0100 mov dl,30 Ab dieser Stelle werden einfach neue Befehle<br />
44B0: 0102 mov ah,2 abgelegt und später per write-Kommando in<br />
44B0: 0104 int 21 das File test zurückgeschrieben.<br />
44B0 :0106 mov ah,4c<br />
44B0 :0108 int 21<br />
44B0: 010a