Tutorial - Hilfe zum Assembler Editor asmedric

Übersicht


Was ist asmedric?

Dieser Editor ist keine alleinstehendes Programm sondern nur für die Verwendung mit dem Programmpaket CIA konzipiert. Es ist möglich, Assemblerprogramme zu editieren und die Programme gemäß eines Schemas in Programme aus 0 und 1 zu übersetzen. Diese Binärprogramme können dann in einen RAM-Baustein des Simulators geladen werden, um sie dort mit dem geeigneten Rechnertyp zu simulieren. Es wird in der ersten Version keine Übersetzung in das Binärformat erfolgen.

Der Editor benutzt spezielle Dateien als Informationsquellen (Dateitypen). Das Verhalten des Editors kann mithilfe dieser Dateien direkt gesteuert werden. Daher ist die Anpassung an andere Befehlssätze und Ausgabeformate mit relativ geringem Aufwand zu bewerkstelligen.

Der Editor unterscheidet zwei Modi: Der eine ist die Bearbeitung von "Assemblerprogrammen", die auch als solche vom Editor automatisch erkannt wurden. Sie müssen dazu einem bestimmten Format entsprechen. Sollte die Datei nicht dem Format entsprechen, wird die Datei als Text geladen. Die Umwandlung in ein Assemblerprogramm ist möglich.

zurück

Welche Dateitypen gibt es?

asmedric unterscheidet 3 Dateitypen:

  1. Befehlssatz-Dateien enthalten die Definition eines Befehlssatzes. Dies sind XML-Dateien, deren Format in der Datei Befehlssatz.dtd festgelegt ist. Ein Befehlssatz ist eine Liste von Befehlen, es wird angegeben, welche Parameter zu dem jeweiligen Befehl passen und dann im Editor als "erlaubt" erkannt werden. Außerdem sollte jeder Befehl die Vorschrift mitführen, wie er in bestimmte Sprachen übersetzt werden kann. Es werden standardmäßig die Befehlssätze RISC, MIKROCODE und MIXED mitgeliefert.


  2. Makrosatz-Dateien definieren Abkürzungen für Gruppen von Befehlen zu einem bestimmten Befehlssatz (wiederum XML). Die Spezifikation ist in MakroSatz.dtd zu finden. Makros dürfen keine weiteren Makros enthalten, sondern bestehen aus reinen Folgen von Befehlen des betreffenden Befehlssatzes. Die hier benannten Makros haben noch weitere Fähigkeiten, die über die der allgemeinbekannten Makros hinausgehen und sind somit zwischen den textuellen Ersetzungen und Unterprogrammen anzusiedeln.


  3. Assembler-Programme beschreiben Zeile für Zeile ein Assembler-Programm. Jedes Programm gehört zu einem Befehlssatz. Das Format ist auch hier XML, wobei es speziell in AssemblerProgramm.dtd festgelegt ist.


  4. Steuersatz-Dateien sind ein Hilfsbefehlssatz, der eine besondere Rolle bei der Benutzung von Variablen spielt. Hier werden zwei Befehle definiert: Festlegung der Startadresse der ersten Variable (voreingestellt VARSTART) immer mit einem Parameter vom Typ "natürliche Zahl", da hier eine Speicheradresse erwartet wird. Und der Befehl zur Deklaration einer neuen Variable (voreingstellt VAR) immer mit einem Namen, einer Angabe zur Breite der Variable in Byte (>=0) und einem initialen Wert (Ganzzahl) in dieser Reihenfolge. Jeder Befehlssatz, der Variablen unterstützen will, muss daher einen Befehl enthalten, der es ermöglicht, eine Speicherzelle mit einem Initialwert zu belegen.

zurück

Wie editiere ich einen Befehlssatz?

Nachdem man den Assembler Editor gestartet hat, wählt man im Menü Datei den Punkt Neu und muss nun einen Befehlssatz wählen, zum Beispiel aus den oben genannten Dateitypen.

Nun kann man mit dem Editieren des Programms im oberen Textfeld beginnen.

Das untere Feld ist für Meldungen reserviert, insbesondere für Fehlermeldungen. Es kann möglich sein Variablen zu benutzen, dies hängt vom Befehlssatz (Dateitypen) ab. Falls der Befehlssatz überhaupt übersetzbar ist, kann das mit einem einzeiligen Programm getestet werden (siehe Wie teste ich einen Befehlssatz?). Nun kann man den Befehlsatz übersetzen.

Beim editieren der Befehlsätze sollte man die folgende Reihenfolge beachten:

Wobei die Befehle des Befehlssatzes von der folgenden Form sein müssen:

Marke : Mnemo, Parameter, Parameter ... // Kommentar

Die Parameterzahl ist vom Befehlsnamen (Mnemo) abhängig.

Marken, Variable und Konstanten sind case-sensitive!

Alle Zahlen sind als Dezimalzahlen anzugeben!

zurück

Wie teste ich einen Befehlssatz?

Dazu im oberen Textfeld VAR testvar, 1, 1  eingeben und in eine Sprache übersetzen. Es erscheint ein kleines Fenster, hier kann alles gewählt werden. Wird nun ein Programm erzeugt und in einem neuen Bereich des Editors angezeigt, ohne das im unteren Textfeld des Ursprungsprogramms  VAR testvar, 1, 1 ein Meldung erscheint, so können Variablen mit dem gewählten Befehlssatz benutzt werden. Ansonsten sollte die Fehlermeldung besagen, dass dies nicht möglich ist.

zurück

Wie übersetze ich einen Befehlssatz?

Mit dem Menü Übersetzung kann zu jedem Zeitpunkt ein Übersetzungsversuch unternommen werden. Dazu kann die Zielsprache ausgewählt werden, anschließend muss noch die Art der Übersetzung angegeben werden. Die Übersetzung kann zu Simulations- und Debugzwecken nur bis zur Auflösung von Makros, zur Ersetzung von Variablen oder bis zur Berechnung von Zeilenmarken ausgeführt werden. Die ganze Übersetzung steht natürlich auch zur Verfügung. Bei jedem Vorgang wird bei Erfolg ein neues Textfeld erzeugt, in dem die Übersetzung angezeigt wird. Sollten Fehler auftreten, so werden diese im Fehlerbereich des ursprünglichen Textes angezeigt.

zurück

Was sind Variablen?

Variablen werden als Adresse benutzt, d.h. sie dürfen nur dort eingesetzt werden, wo auch eine Adresse erlaubt ist.

Alle Variablendeklarationen müssen vor den anderen Befehlen im Programm Stehen!

zurück

Was sind Konstanten?

Konstanten können mit Const Name, Zahl  eingerichtet werden, die im Format Zahl im Programmverlauf verwendet werden . Sie stellen nur textuelle Ersetzungen dar.

Alle Konstantendeklarationen müssen vor den anderen Befehlen im Programm stehen!

zurück

Was sind Marken?

Marken sind Markierungen für einzelne Befehlszeilen, die dem Befehlsnamen vorangestellt und durch einen : abgetrennt werden. Für jede Zeile ist eine Marke erlaubt. Einer markierten Zeile kann ein Kommentar angefügt werden.

zurück

Was bietet das Menü Datei?

Es enthät die folgenden Punkte für den Umgang mit Dateien

zurück

Was bietet das Menü Tools?

Dieses Menü bietet eine Reihe von nützlichen Hilfsmitteln

zurück

Welche anderen Menüs bietet asmedric?

zurück

Welche Register sind verfügbar?

Der Editor erkennt acht verschiedene Register, die Namen sind dem RISC-Befehlssatz angepasst. Eine Umbenennung der Register ist nicht möglich, d.h. auch beim Programmieren für andere Maschinentypen müssen diese Bezeichnungen benutzt werden. Intern werden die Register aber mit Zahlen von 0 bis 7 identifiziert, so dass ein Zuordnung möglich ist.

Name im Editor
Interne Nummer
Z.B. in Mikrocode
NULLR 0 R0
PC 1 R1
S1 2 R2
S2 3 R3
S3 4 R4
T1 5 R5
LO 6 R6
HI 7 R7

Bei Registern kommt es nicht auf Groß- und Kleinschreibung an!

zurück

Was sind sensitive Makros?

In einer externen Datei kann zu einem Befehlssatz ein Makrosatz definiert werden. Die Makros bestehen gültigen Befehlen des betreffenden Befehlssatzes. Insbesondere bedeutet das, dass Makros nicht aus anderen Makros aufgebaut sein dürfen. Die Makros dürfen sogenannte Makrovariablen benutzen, Diese sind von der Form ?x wobei x>=0 eine Ganze Zahl ist.

Ex: ?0, ?1 sind Variablen, ?-2, ?a, ?1.3 nicht

Beim Ersetzen von Makros im Programm werden diese Variablen durch die Parameter des Makros ersetzt. Überall, wo im Makro ?0 vorkommt, wird der erste Parameter des Makros eingesetzt, für ?1 jeweils der zweite etc. Will man ein solches Makros mit Variablen benutzen, so ist darauf zu achten, dass mindestens die vorkommenden Makrovariablen mit Werten belegt werden können.

Ex:

Sei der Makro MAKRO gegeben mit  ADD ?0, 10,

d.h. schreibt man MAKRO im Programntext, so soll etwa der erste Parameter dieser Zeile um 100 erhöht werden (dies kann aber nur eine Interpretation des ADD-Befehls sein).

So wäre MAKRO S1 (ein Register) eine Möglichkeit, diesen Makro zu benutzen. Dabei muss vorausgesetzt werden, dass es im Befehlssatz einen Befehl ADD gibt, der als ersten Parameter ein Register und als zweiten eine Zahl erwartet, denn Makros dürfen nur aus Befehlen des zugehörigen Befehlssatzes bestehen.

Der Aufruf MAKRO (ohne Parameter) führt zu einer Fehlermeldung, da die Variable ?0 nicht belegt werden kann.

Der Aufruf MAKRO S2, S3 ist erlaubt, denn alle Variablen (nur ?0) können belegt werden, weitergehende Parameter werden ignoriert.

zurück

Anmerkungen und Erweiterungen

zurück

Zur Hauptseite

Zum nächsten Kapitel