Niedere Sprachen

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 D1
vom 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 Makros
und 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