next up previous contents index 6163656769
Next: A.2 Die echten Programmiersprachen Up: A.1 Über Bits, Bytes Previous: A.1.5 Programmieren auf unterster   Contents   Index

A.1.6 Was ist ein Assembler?

Der nächste Schritt bestand darin, als Abkürzungen für die Inhalte von Bytes kurze Namen aus drei Buchstaben zu verwenden, die unmittelbar die Aufgabe des Befehls darstellen sollten. So bedeutet etwa $ mov  ax,3$ für den PC-Prozessor die Anweisung »bewege die Zahl $ 3$ in den Register $ ax$ des Prozessors«. Bedenken Sie, dass sowohl $ mov$ als auch $ ax$ und $ 3$ je ein Byte bedeuten. Wenn Sie bereits schon programmiert haben, werden Sie sehen, dass diese Anweisung schon einige Elemente einer »echten« Programmiersprache enthält. Es ist allerdings wenig mehr als eine »mnemotechnische« Sprache, bei der die einzelnen vorhandenen Befehle des Prozessors durch ein Wort, wie hier zum Beispiel, mov ersetzt werden. Jeder einzelne Befehl führt genau eine Aufgabe aus. Um solch eine komplizierte Prozedur wie etwa das Ausgeben auf einem Bildschirm zu ermöglichen, müssen diese Befehle zu einem noch grösseren Block »zusammengeklebt« werden.

Aus diesem Grunde heisst diese mnemotechnische Sprache, die also die Binärbefehle nur durch Worte ersetzt, Assembler, also »Zusammenbauer«. Natürlich können Sie sich denken, dass Programme, die die Aufgabe eines einzigen print Befehls in einer höheren Programmiersprache durchführen, sehr umfangreich sind und natürlich vor der Ausführung interpretiert werden müssen, denn der Prozessor versteht eben nichts als reine Maschinensprache. Dieser Interpreter heisst ebenfalls Assembler. Nicht nur die Sprache, sondern auch das »Übersetzerprogramm« trägt denselben Namen. Ja, und in welcher Sprache ist nun der Assembler selbst geschrieben? Nun, dass musste zunächst Maschinensprache sein; daran geht kein Weg vorbei.


next up previous contents index 6163656769
Next: A.2 Die echten Programmiersprachen Up: A.1 Über Bits, Bytes Previous: A.1.5 Programmieren auf unterster   Contents   Index
Heiko Schroeder 2003-03-19