Assembler auf dem IBM PC 5150 - Erstes Programm

Assembler Programmierung ist für mich bisher ein wenig suspekt. Ein guter Grund das ich mich damit mal beschäftige. Zuerst muß der passende Assembler gefunden werden. Auf der Suche stieß ich auf dem IBM Makro Assembler in der Version 1.0. Dieser ist schlecht ein von Microsoft übernommener Assembler. Da aber bei der IBM Version kein Linker dabei ist und auf den PC DOS 3.3 Disketten von IBM dieser auch fehlt - Habe ich mich für die Version 3.0 des Microsoft Makro Assemblers entschieden. Dieser ist auf einer Diskette im 360KB Format erhältlich und enthält auch den passenden Linker.

Die Liste der benötigten Software ist entsprechend kurz

Die Bestandteile auf der MASM Diskette sind hauptsächlich MASM.EXE und LINK.EXE die benötigt werden um eine EXE Datei zu erzeugen. Die DateiEDIT.COM habe ich noch mit auf die MASM Diskette kopiert um Quellcode komfortabler erstellen zu können. Der Inhalt der Diskette ist in der folgenden Abbildung dargestellt:

MASM Inhalt auf Laufwerk B
(Für eine vergrößterte Darstellung Bild anklicken)

Um die Funktion zu testen nutze ich das typische "Hello (World)" Programm. Dieses muß neben einigen weiteren Anweisungen als Quelltext erstellt werden. Gleich zu Anfang stößt man NATÜRLICH auf Probleme. Der MASM meckert an, das kein "end" statement angegeben ist (obwohl es tatsächlich im Quellcode angegeben ist). Offensichtlich benötigt der MASM ein "CRLF" hinter der letzten Zeile Quellcode. Ich habe das Programm "prog1.asm" bennannt.

Prog1 Quellcode im Editor
(Für eine vergrößterte Darstellung Bild anklicken)

Der Übersetzungsvorgang startet dann mit dem Kommando "masm prog1.asm". Die Endung "asm" wird hierbei eigentlich nicht benötigt. Der MASM nutzt die Quelldatei und stellt noch einige Fragen.

1) Wie die Objekt Datei heißen soll (defaultmäßig wird der Dateiname mit der Endung "obj" angenommen)
2) Ob eine Source Listing Datei erstellt werden soll - Dazu muß ein Name eingegeben werden (Dies ist eine druckbare Version des Quellcodes)
3) Ob eine Cross Reference Datei erstellt werden soll - Auch hier wird dann die Eingabe eines Names benötigt

MASM Übersetzungsvorgang
(Für eine vergrößterte Darstellung Bild anklicken)

Im Anschluß wird der Link Vorgang gestartet mit "link prog1". Ebenso wird hier die Eingabe von ".obj" nicht benötigt. Der Linker stellt auch noch drei Fragen:

1) Wie die EXE Datei heißen soll (defaultmäßig wird der Dateiname mit der Endung "exe" angenommen)
2) Ob eine LIST Datei erstellt werden soll - Dazu muß ein Name eingegeben werden
3) Ob eine LIB Datei erzeugt werden soll - Auch hier wäre dann ein Name von Nöten

Linker Übersetzungsvorgang
(Für eine vergrößterte Darstellung Bild anklicken)

Nach dem Linken kann die ausführbare exe Datei (prog1.exe) aufgerufen werden und das Programm gibt die Textzeile "Hello."

Ausführung der EXE Datei
(Für eine vergrößterte Darstellung Bild anklicken)

Abschließend noch die Bilder für das Quellcode Listing das beim MASM erzeugt wurde

Programmlisting Teil 1
Programmlisting Teil 2
Programmlisting Teil 3
(Für eine vergrößterte Darstellung die Bilder anklicken)

Der Quellcode

Wie üblich ist bei "älterer" Software erst einmal die Hürde zu nehmen, wie ein Quellcode anzulegen ist. Der MASM macht hier keine Ausnahme. Neuere Versionen als die Version 3.0 benötigen erheblich weniger Anweisungen um dem Quellcode übersetzungsfähig zu machen. Deshalb hier die Erläuterungen zum Quellcode die ich dem Handbuch entnehmen konnte.

Zurück zur Homepage
Nach oben