Assemblieren von Programmen

Das im Editor befindliche Programmlistung wird assembliert mit:

AS M

oder

 A.

Bei dem Assembler handelt es sich um einen sogenannten Zweipass Assembler, das heißt, es werden zwei Durchgänge benötigt, um eine Objektdatei zu erzeugen. Die beiden Durchgänge werden mit PASS 1 und PASS 2 auf dem Bildschirm angezeigt. in PASS 1 werden die Speicherbereiche angezeigt, in die in PASS 2 die Daten abgelegt werden. Im 2. Durchgang wird das komplette Listing auf dem Bildschirm ausgegeben. Diese Bildschirmausgabe kann das Assemblieren sehr verlangsamen deshalb sollte bei längeren Listings dei Pseudo-Opcode .LI OFF in der ersten Zeile stehen, durch den die Bildschirmausgabe des Listings unterdrückt wird.

Was passiert nun beim assemblieren in den beiden Durchgängen?

Im PASS 1 wird das komplette Listng auf Eingabefehler überprüft, die Symboltabelle erstellt, die Werte der Labels errechnet und die Länge der Objektdatei ermittelt.

In PASS 2 werden die zu den Opcodes gehörenden Werte im RAM abgelegt oder als Objectfile auf die Diskette geschrieben und die im ersten Durchgang errechneten Werte der Labels in die Objectdaten eingefügt.

Das Assemblieren kann jederzeit durch drücken der OPTION-Taste abgebrochen werden. Der Abbruch wird mit 'ASM Stopped' angezeigt. Falls ein Fehler während des assemblierens auftritt, wird der Assembliervorgang ebenfalls gestoppt und die fehlerhafte Zeile angezeigt. Ein bereits geöffnetes Objectfile wird geschlossen, kann aber noch nicht die erforderliche Länge haben, die im Fileheader angegeben ist. Der Versuch solch ein abgebrochenes Objectfile einzuladen führt auf jeden Fall zu einer Fehlermeldung.

Wird beim assemblieren in einer Includedatei ein Fehler festgestellt, wird der Assembliervorgang ebenfalls abgebrochen und der Editor meldet sich zurück mit

In c>

Die Includedatei befindet sich nun im 2. Editor und kann hier direkt bearbeitet werden. Sie können den Fehler beseitigen und das Includefile wieder abspeichern. Mit RET kehren Sie zum Haupteditor zurück. Falls Sie das Programm sofort nach der Änderung wieder assemblieren wo llen, können Sie dieses nach abspeichern des Includefiles direkt aus dem Include heraus, der ASM-Befehl führt in diesem Fall automatisch ein RET aus.

Sollte der Assembliervoraang erfolgreich abgeschlossen sein, meldet sich der Editor wieder zurück aus dem heraus Sie den Assembler aktiviert haben:

Ed it>

oder

Ed 2>

Nach erfolgter Assemblierung eines Programmes können Sie zwei weitere Befehle anwenden.

Um die beim assemblieren ermittelte Adresse eines Labels abzufragen gibt es den Befehl:

Syntax:  V AL <Label> (von Value, Wert)
Beispiel: VAL START

Hiermit wird die Symboltabelle nach dem Label abgesucht und die zu diesem Label gehörende Adresse in Hexa- und Dezimaler Form dargestellt.

Mit der VAL-Funktion sind auch Additionen und Subtraktionen sowie die Umwandlung von Hexadezimal- in Dezimalzahlen und umgekehrt möglich.

Beispiele:

VAL $12 34
VAL START+$200
VAL 125-$10

Wird im 2.Durchgang beim assemblieren das Listing auf dem Bildschirm ausgegeben, erscheint zum Schluß automatisch die Symboltabelle. Die vollständige Symboltabelle kann aber auch nachträglich auf dem Bildschirm aufgelistet werden mit:

S YM

Hierbei werden alle Labels alphabetisch geordnet und deren Werte angezeigt. Falls lokale Labels verwendet wurden, werden auch diese angezeigt.