Assembler Tutorial - Glatter Start in die Maschinensprache?

Nicht wenige Computerbesitzer packt früher oder später die Neugier, wie ihre Maschine auf unterster Ebene arbeitet, da, wo all die vielfältigen Aktionen des Computers ihren Ursprung haben. Assemblerprogrammierung lautet die Zauberformel. Oftmals ist es für einen Einsteiger in diese Materie schwierig, den richtigen Zugang zu finden. Speziell für den ATARI ST bietet die Firma CCD ein Assembler Tutorial an, das dieses Problem lösen soll.

Die äußere Form des Assembler Tutorials ist eindrucksvoll. In zwei Ringbüchern erhält man insgesamt über 600 Seiten an Information. Vervollständigt wird das Paket durch eine Diskette, die ein Programm zur Simulation des Motorola 68000, also des im ATARI ST verwendeten Mikroprozessors, enthält. Was haben wir da also genau vor uns liegen? Ein Tutorial wieder mal einer dieser englischen Begriffe, der über die Hintertür der Computertechnik in unsere Sprache einwandert. Aber da England zur EG gehört, kommen wir um eine Verschärfung der Einwanderungsgesetze in diesem Fall vielleicht ausnahmsweise noch einmal herum. Ein Blick ins Wörterbuch bringt schnell ans Licht, daß es sich um eine Unterrichts- und Übungsstunde handelt. Also wohl genau das Richtige für uns.

Die Schulbank drücken

Als ordentlicher Schüler beginnen wir bei der Lektüre unseres Unterrichtsmaterials ganz von vorne. Zunächst erfahren wir etwas über die Entstehung des vor uns liegenden Werkes. Demzufolge hat der Autor des Tutorials vor nicht allzulanger Zeit selbst die Schulbank in Sachen Assembler gedrückt und dabei alle Erfahrungen seinem Tagebuch anvertraut, das dann später in überarbeiteter Form die Grundlage für unser Lehrbuch bildete. Dies, so ist zu erfahren, soll das Problem vieler anderer Fachbuchautoren lösen, die nicht mehr über das nötige Einfühlungsvermögen für die Denkweise eines Einsteigers verfügen. Ein wenig Angst macht uns zu diesem Zeitpunkt, daß im Vorwort besonders diejenigen Mitschüler angesprochen werden, die sich bereits mit der Assemblerprogrammierung eines anderen Mikroprozessors beschäftigt haben. Hoffentlich kann man da mit der Klasse mithalten...

Das kleine Einmaleins

Diese Befürchtung bewahrheitet sich zunächst glücklicherweise nicht. In den ersten Lektionen behandeln wir die Fragen „Was ist ein Programm?“ und „Was ist ein Bit?“ (Lämpchen an und Lämpchen aus) und gehen auf den Unterschied zwischen Interpreter- und Compilersprachen ein. Über die Beschreibung der Zahlendarstellung, der logischen Verknüpfungen und des grundlegenden Aufbaus eines Computers gelangen wir schließlich zur einer kurzen Beschreibung des Motorola 68000. In der darauffolgenden Stun de kommt das erste Mal Enttäuschung auf. Es wird kurz, knapp und allgemein die Handhabung eines Assemblers beschrieben - schade, denn einen solchen haben wir leider noch gar nicht. Und was ist mit dem mitgelieferten Simulatorprogramm? Davon ist überhaupt nicht die Rede.

Probleme mit dem Lehrplan

Die weiteren Lektionen bereiten den Mitschülern ohne detailliertes Vorwissen ziemliche Probleme. Zunächst werden die Adressierungsarten des 68000-Prozessors beschrieben - ganz schön abstrakt, wenn man berücksichtigt, daß wir uns nur wenige Seiten vorher noch mit dem Lämpchen, das brennt oder nicht brennt, beschäftigt haben. Das darauffolgende Kapitel zählt alle Befehle des 68000-Prozessors auf. Am Anfang wird vorgeschlagen, mit dem beigefügten Simulatorprogramm, dessen Bedienung im Anhang des Tutorials beschrieben ist, die Wirkung der einzelnen Befehle auf die Register zu untersuchen oder kleine Programme zu schreiben. Leider wird hierzu keine Hilfestellung gegeben, so daß die Motivation und der Erfolg bei ABC-Schützen in Sachen Assembler nicht besonders hoch sind und daher die Mitarbeit in der ganzen Klasse zu wünschen übrig läßt. Spätestens an dieser Stelle tritt denn auch das Schulamt auf den Plan. Zwar wird das Lehrmaterial nicht gleich aus dem Verkehr gezogen, aber der Autor muß sich schon einige Kritik gefallen lassen.

Wenn das Tutorial, wie es aus den einführenden Worten hervorgeht, wirklich für Einsteiger ohne Vorkenntnisse gedacht ist, dann muß der einführende Teil umfangreicher sein und sorgfältiger ausgearbeitet werden. Es ist wohl nur schwer möglich, auf fünfzig Seiten das Verständnis für all die oben genannten Themen zu schaffen. Zudem sind die Erläuterungen oft unverständlich oder zumindest für einen Einsteiger irreführend.

Stolpersteine

So ist es wohl wenig hilfreich, einen Interpreter als Einrichtung zu bezeichnen, „die jede Programmzeile in die dem Computer verständliche Sprache umwandelt“, wenn man den Unterschied zwischen einem Interpreter und einem Compiler herausstellen will. Zur Beschreibung des Stack-Prinzips beim Aufruf von Unterprogrammen wird folgendes Beispiel verwendet: „Stellen Sie sich zur Veranschaulichung von Stack und Stackpointer ein Telefonbuch vor. Das ist Ihr Stack. Da Sie sich die Telefonnummer Ihres Zahnarztes nicht merken können, schreiben Sie sich auf, daß dessen Telefonnummer auf der Seite 145 des Telefonbuches steht. Das ist Ihr Stackpointer.“. Wer jetzt weiß, worum es geht, möge mir bitte den Zusammenhang erklären. Schlichtweg falsch ist die Behauptung, der Supervisor-Modus der 68000 CPU sei unter anderem ein Schutz vor dem unbeabsichtigten Löschen eines Programmes auf Diskette. Eine solche Vermischung von Begriffen aus ganz verschiedenen Bereichen ist für das Verständnis der Zusammenhänge sicherlich nicht förderlich und führt zu unnötiger Verwirrung.

Nur noch Theorie...

Nach der Einführung und der Beschreibung der Befehle des 68000-Prozessors werden die Funktionsaufrufe des GEMDOS, BIOS und XBIOS beschrieben. Die Erläuterungen zu den einzelnen Funktionen sind im Vergleich zu anderen Betriebssystembeschreibungen für den ATARI ST recht umfangreich. Positiv ist zu bemerken, daß zusätzlich zur Beschreibung des Funktionsaufrufs für einige Funktionen ein kurzes Beispielprogramm angegeben ist. Um diese Beispiele auszuprobieren wird aber auf jeden Fall ein Assembler benötigt, da das mitgelieferte Simulatorprogramm jeden Funktionsaufruf an das Betriebssystem zurückweist.

Der TRAP-Befehl wird nicht unterstützt. Nimmt man das zweite der beiden Ringbücher zur Hand, stößt man zunächst auf die Beschreibung von AES und VDI. So erfährt der Leser, daß VDI für Virtual Device Interface, zu deutsch Schnittstelle für gerätespezifische Ansteuerung, steht und daß damit ja auch schon die Wirkungsweise von VDI erklärt ist. Die weiteren Informationen fließen spärlich und eh’ man sich versieht beginnt auch schon die Auflistung der Funktionen nach oben beschriebenem Muster, in das sich nach VDI auch L1NE-A und AES einreihen. Aber selbst bei der Beschreibung der Funktionen kann das Tutorial nicht beanspruchen, vollständig zu sein. Zwar beklagt der Autor in seinen einführenden Worten die Fehlerhaftigkeit der ursprünglichen GEM-Dokumentation, und der Hersteller nennt als Entstehungsgrund für das Tutorial das Eigenbedürfnis nach einer vollständigen Dokumentation. Wo aber sind dann beispielsweise die von Digital Research ursprünglich nicht dokumentierten Funktionen form_keybd() und form_button()? Zieht man andere Publikationen zum Vergleich heran, muß man feststellen, daß das Assembler Tutorial nicht dem heutigen Wissensstand über den ATARI ST entspricht.

Im Anhang des Buches findet man noch Informationen zu Themen wie Tastatur, Bildschirm, Interrupts und Soundchip sowie - endlich - eine zwanzigseitige Beschreibung des 68000-Simulatorprogramms.

Das Simulationsprogramm bei der Arbeit

Der Simulator

Nach dem Starten des Programms erscheinen auf dem Bildschirm vier Fenster, von denen drei zur Anzeige der CPU-Register, der Flags sowie des Speichers und Stacks dienen, wobei die Register in binärer, dezimaler und hexadezimaler Form angezeigt werden. Ein stilisierter Monitor in der linken oberen Bildschirmecke dient zur Ausgabe von Zeichen von den simulierten Programmen aus. Das vierte Fenster gehört zu einem integrierten Editor und kann zur Programmeingabe auf volle Bildschirmgröße gebracht werden. Die maximale Länge eines Programms ist durch den Editor auf 120 Zeilen beschränkt. Obwohl der Editor nur über die elementaren Operationen zur Erstellung eines kurzen Textes verfügt, scheinen sich einige Bugs in den Code eingeschlichen zu haben. Der Cursor springt in manchen Situationen aus dem Editorfenster hinaus oder verstreut munter Sonderzeichen im Text. In einem Fall waren die Funktionen zum Löschen einer Zeile blockiert, und das Ende des eingegebenen Programms konnte mit dem Cursor nicht mehr erreicht werden - schließlich quittierte das ganze System mit einigen Bomben den Dienst.

Die Simulation der 68000-CPU unterliegt einigen Einschränkungen. Statt der kompletten 8 Daten und Adreßregister werden nur jeweils 3 Register unterstützt.

Wie bereits erwähnt, dürfen in den simulierten Programmen keine Betriebssystemaufrufe verwendet werden. Um dennoch Ein- und Ausgaben zu ermöglichen, stehen Unterprogramme zum Einlesen und Ausgeben von Zeichen und Zeichenketten zur Verfügung, die mit einem JSR-Befehl aufgerufen werden können. Die Ausgaben werden dann auf dem stilisierten Bildschirm angezeigt. Nachdem man einige 68000-Instruktionen eingeben hat, kann man diese Schritt für Schritt oder als ganzes Programm ablaufen lassen. Zu jedem Zeitpunkt werden die aktuellen Registerinhalte, Flags und der Stack angezeigt. Auf der Diskette befinden sich neun kurze Beispielprogramme, die einige für die Assemblerprogrammierung typische Situationen aufzeigen. Leider wird auf diese Beispiele im Tutorial nicht weiter eingegangen, so daß man auf die kurze Beschreibung der Programmfunktion in einigen Kommentarzeilen angewiesen ist.

Fazit

Zusammenfassend muß man leider sagen, daß der Aufbau des Assembler Tutorials nicht glücklich gewählt ist. Insbesondere wird es nicht dem Anspruch gerecht, eine Einführung in die Assemblersprache für Einsteiger ohne Vorwissen zu sein. Im Vergleich zum Nachschlageteil des Tutorials. sprich der Beschreibung der Betriebssystemfunktionen des ATARI ST, ist die Einführung in die Grundlagen der Assemblerprogrammierung schon vom Umfang her viel zu gering. Zudem hat der Autor in bezug auf die Strukturierung dieser Einleitung und die Erläuterung von Fachbegriffen keine glückliche Hand bewiesen. Ruft man sich ins Gedächtnis, daß ein Tagebuch des Autors über seinen Einstieg in die Assemblerprogrammierung die Grundlage für das Tutorial gebildet haben soll, so stellt sich die Frage, ob er wirklich nacheinander zunächst die Adressierungarten und Befehle des 68000 und anschließend alle Betriebssystemfunktionen durchgepaukt hat. Eine bessere Lösung wäre sicherlich ein Kurs gewesen, der nach der Einführung der Grundbegriffe Schritt für Schritt die Entwicklung kleiner Programme ermöglicht und dem angehenden Assemblerprogrammierer erste Erfolgserlebnisse gebracht hätte. Das Programm zur Simulation der 68000-CPU könnte ein solches Konzept gut unterstützen, müßte aber von seinen Einschränkungen befreit werden. In der momentanen Fassung erhält man mit dem Assembler Tutorial von CCD zum Preis von 109,- DM nicht viel mehr als ein Nachschlagewerk über den ATARI ST, das dem Vergleich zu anderen Dokumentationen zu diesem Computer kaum standhalten kann.

Bezugsadresse:

CCD
Burxstr 9
6228 Eltville


Stefan Schmidt
Aus: ST-Computer 04 / 1989, Seite 136

Links

Copyright-Bestimmungen: siehe Über diese Seite