Maschinensprache ist
für Mensch und Tier unverständlich und rechnerabhängig.
Jede Anweisung in Maschinensprache ergibt eine atomare Aktion des Prozessors.
Zum Abarbeiten muß das Programm im
Arbeitsspeicher stehen.
Aufbewahrt wird ein Programm in der Regel als Datei auf einem
Massenspeicher (Programmdatei) und zum Abarbeiten
wird es mit dem Lader (Teil des Betriebssytems)
in den Speicher gebracht.
Assembler
ist die lesbare Schreibweise der Maschinensprache.
Jeder
Assemblerbefehl wird mit dem Assembler (-programm)
zu einer Anweisung in
Maschinensprache übersetzt.
Z.B. wird die Anweisungsfolge
MOVE D0,123465 * verschiebe den Inhalt des Registers D0 * an die Stelle 123465 im Speicher SUB #5,D1 * ziehe vom Inhalt des Registers D1 die * Zahl 5 ab ADD 6,D1 * addiere die Zahl, die an der Stelle * 6 im Speicher * steht, zum Inhalt von Register D1vom Assembler in eine Folge von entsprechenden Maschinenbefehlen (als Binärzahlen) umgewandelt. Da die Befehle auf den Befehlsvorrat des verwendeten Rechners abgestimmt sind, ist Assembler ebenso rechnerabhängig wie die eigentliche Maschinensprache. Der Fortschritt liegt nur in der etwas leichteren Programmierung.
Makroassembler ermöglichen die Abkürzung von häufigen Befehlssequenzen durch sogenannte Makros. Die Makros erweitern also den Befehlsvorrat eines Prozessors scheinbar. Kann ein Prozessor beispielsweise nicht zwei Zahlen im Speicher addieren, sondern nur in Registern, dann kann man sich ein Makro etwa so schreiben:
MACRO ADDMEM /1,/2 * addiert die Zahl an der Stelle /1 zur * Zahl an der Stelle /2. Die Register * D0 und D1 werden dabei ueberschrieben. MOVE /1,D0 * 1. Operanden holen MOVE /2,D1 * 2. Operanden holen ADD D0,D1 * addieren MOVE D1,/2 * zurueckschreiben ENDM * Ende des Makrosund dann jederzeit in seinem Programm mit dem Befehl
ADDMEM 123,456 * Inhalt an der Stelle 123 zur Zahl an * der Stelle 456 addieren.zwei Zahlen im Speicher addieren.
Tatsächlich gibt es den Befehl ADDMEM für
den Prozessor gar nicht;
beim Assemblieren wird der Befehl ADDMEM durch
die Befehlsfolge
aus der Makrodefinition ersetzt.
Die Parameter /1 und /2 werden dabei
durch die Argumente 123
bzw. 456
ersetzt.
Maschinensprache und Assembler sind sehr fehleranfällig, unübersichtlich, und schwer zu warten (Wartung ist die meiste Arbeit an der Softwareentwicklung, nicht die Neuerstellung von Programmen!).
AnyWare@Wachtler.de