PROJEKT

64'er

DAS MAGAZIN FÜR COMPUTER-FANS ONLINE


HYPRA-ASS — Ein Assembler der Spitzenklasse

64'er Ausgabe 7/Juli 1985, Seite 51

Das war noch nie da. Ein Super-Assembler zum Abtippen. Mit Leistungsmerkmalen, die Sie sich schon immer gewünscht haben, übertrifft er jeden 100-Mark-Assembler.

HYPRA-ASS ist ein rein in Maschinensprache geschriebener 3-Pass-Makroassembler mit integriertem Editor für den C 64 mit Diskettenlaufwerk 1541. Er belegt etwa 6 KByte RAM-Speicher von $0801 bis $1FD7. HYPRA-ASS gehört, was Leistung und Schnelligkeit betrifft, zu einem der besten Assembler. Seine hervorstechendste Eigenschaft ist die Fähigkeit, um Befehlsfolgen, die in einem Programm immer wieder auftreten, einen Block beziehungsweise ein Makro zu legen. So definierte Befehlsfolgen können durch einen einfachen Befehl an jeder beliebigen Stelle des Programms aufgerufen werden. Diese Eigenschaft haben viele Assembler, aber nur wenige können lokale Labels beziehungsweise Sprungziele innerhalb eines Makros verarbeiten. Innerhalb eines Makros sind, wenn nicht besonders gekennzeichnet, alle Labels und Variablen lokal. Neben vielen Pseudo-Opcodes, mit denen sich zum Beispiel der Objektcode auf Diskette assemblieren läßt oder Quelltexte verketten lassen, kann auch bedingt assembliert werden. Formatierte Listings können an beliebige Geräte gesendet werden. Symboltabellen lassen sich sortiert und unsortiert ausgeben.

HYPRA-ASS: Formatiertes Listing immer wieder benötigter Makros
Bild 1. Formatiertes Listing immer wieder benötigter Makros

Quelltexte werden bei HYPRA-ASS wie normale Basic-Programme erstellt. Nach der Eingabe von RETURN erscheint die soeben eingegebene Zeile formatiert auf dem Bildschirm. Die dabei benutzten Tabulatoren können durch einfache Befehle geändert werden. Um das Editieren von Quelltexte möglichst bequem zu machen, ist in HYPRA-ASS ein spezieller Editor integriert, der den normalen Basic-Editor um viele Funktionen erweitert. Neben der automatischen Zeilennumerierung können Zeilen und Zeilenbereiche formatiert gelisten werden. Auch das oft vermißte Suchen und Ersetzen, Find und Renumber sind eine Selbstverständlichkeit für diesen Editor.

(Gerd Möllmann/ah)



Label: Sprungmarke
Bedingte As-
semblierung:
Abhängig von einer Variablen können zum Beispiel Quelltextzeilen beim Assemblieren übersprungen werden. Bei unterschiedlichen Variablen erhält man folglich unterschiedlichen Objektcode
Makro: Befehlsfolgen, die im Quelltext häufiger benutzt werden. Das Makro wird in einer Definitionszeile mit einem Namen versehen, unter dem es im Quelltext beliebig oft aufgerufen werden kann. Trifft der Assembler auf einen so definierten Namen, so wird an diese Stelle die vorher definierte Folge von Befehlen assembliert.
n-Paß: Für n steht eine Zahl, die die Anzahl der Assemblerläufe anzeigt. Bei Assemblern, die Labels verarbeiten können, handelt es sich in der Regel um 2-Pass-Assembler. Im ersten Pass wird eine Syntaxprüfung durchgeführt und den Labels und Variablen ein numerischer Wert (Adresse) zugewiesen. (Symboltabelle wird angelegt). Im zweiten Pass wird dann der Objektcode erzeugt.
Objektcode: Das vom Assembler erstellte Basic- oder Text-File
Quelltext: Das mit dem Assembler erstellte Basic- oder Text-File
Symboltabelle: Beim Assemblieren wird jedem Label und jeder Variable ein numerischer Wert zugewiesen. Die Symboltabelle enthält eine Liste aller im Programm vorkommenden Label und Variablen mit deren Wertzuweisungen.
  Bild 2. Definition der im Text auftretenden Fachbegriffe


Lebenslauf:

Ich bin 28 Jahre alt. Nach dem Abitur im Jahre 1975 begann ich ein Mathematikstudium an der Ruhr Universität Bochum. Nun, nachdem ich den Grundwehrdienst abgeleistet habe, beabsichtige ich, in die Datenverarbeitung einzusteigen und eventuell ein Informatikstudium aufzunehmen. Weitere Pläne den C 64 betreffend liegen schon vor. So ist eine Textverarbeitung schon in Angriff genommen.

Am Anfang der Entwicklung von HYPRA-ASS stand ein Editor/Assemblerpaar, das von mir Ende 1984 in Basic geschrieben wurde, um dem mangelhaften Basic des C 64 auf die Sprünge zu helfen. Doch schon bald erwies sich die Langsamkeit dieser Programme als so nervenzermürbend, daß für mich nur die Wahl bestand, entweder einen in Maschinensprache geschriebenen Assembler zu kaufen oder selbst einen zu schreiben.

Da solche Assembler recht teuer sind und weil es eine interessante Aufgabe ist, einen Assembler zu schreiben, habe ich mich für die zweite Alternative entschieden. So entstand mit Hilfe des Basic-Assemblers eine erste Version von HYPRA-ASS, die wiederum eine zweite Version assemblierte und so weiter.

Die Entwicklung von HYPRA-ASS verlief also in einem »bootstrapping«-Verfahren, was außerdem noch den Vorteil hatte, daß eine Prüfung der Funktionstüchtigkeit des Programms schon zum großen Teil im Verfahren selbst stattfand.

(Gerd Möllmann)



© Originalartikel: WEKA Verlagsgesellschaft, 64'er
© HTML-Veröffentlichung: Projekt 64'er online
Erfassung des Artikels: Jörg Bleimann



8-Bit-Nirvana | Impressum