Assembler - Ursprung aller Programmiersprachen

Für die Programmierung von Mikrocomputern ist Assembler ein Schlüsselwort — und wird es auch in Zukunft bleiben.

Der erste Computer — oder sagen wir besser die erste Rechenmaschine - - wurde bereits vor zirka 400 Jahren von Wilhelm Schickard in Tübingen erdacht und gebaut. Diese Maschine konnte addieren und subtrahieren und beachtete selbständig den Zehner- und Hunderterübertrag. Wenige Jahrzehnte später, genaugenommen 1642, entwickelte unabhängig davon der Franzose Blaise Pascal eine gleichartige Rechenmaschine. Diese wiederum sah der Erfinder, Geschichtsforscher, Mathematiker, Naturwissenschaftler, Philosoph, Politiker und Rechtsgelehrte Gottfried Wilhelm Leibnitz. Die Rechenmaschine inspirierte ihn zu ungewöhnlichen gedanklichen Leistungen. Letzten Endes entwickelte er eine Universalsprache, in der es nur die Begriffe »richtig« und »falsch« gab, denen er die Grundwerte »1« und »0« zuordnete. Somit ist Leibnitz der Vater des Dualsystems, das man auch Binärsystem nennt.

»und«, »oder« und »nicht« darstellen und somit jeden logischen Vorgang beschreiben und in Formeln fassen. Jede Gleichung ist also auf Aussagen mit den Wertigkeiten »l« oder »0« zurückzuführen und heutzutage mit einfachen Schaltelementen darstellbar. Dieses Gedankenmodell bildete die Voraussetzung zur Konstruktion von programmierbaren, elektronischen Rechenmaschinen, der »Hardware«-Computer.

Am Anfang war eine Null und eine Eins

Die heutigen Computer basieren auf einer CPU, der zentralen Recheneinheit. Am weitesten verbreitet sind 8-Bit-CPUs, die auch in den meisten Heimcomputern zu finden sind. Sie bilden sozusagen die Herzen der Computer und können bis zu 256 verschiedene Anweisungen unterscheiden.

Mit diesem Denksystem war der Grundstein aller Programmiersprachen gelegt, mit ihm wurde die »Software« erst möglich.

Mit diesen Grundlagen beschäftigte sich auch der Mathematiker George Boole, der den nach ihm benannten mathematischen Teilbereich »Boole’sche Algebra« entwickelte. Mit dieser Algebra kann man Verknüpfungen der Aussagen.

Jede dieser Anweisungen ist ein Maschinensprache-Befehl. Maschinencode-Programme stehen als Zahlenfolge im Speicher des Computers. Dort holt sich der Computer nacheinander Befehl für Befehl (Zahl für Zahl) und führt sie aus. Ein geübter Maschinencode-Programmierer liest Maschinencode-Programme wie ein Buch. Die Übersichtlichkeit solcher Datenwüsten läßt aber zu wünschen übrig. Hier springt Assembler ein.

Jedem Maschinensprache-Befehl ist ein mnemonischer Begriff zugeordnet. Die Mnemonic ist die Technik der Gedächtnishilfe durch die Verwendung von aussagefähigen Bezeichnungen. Ein mnemonischer Code ist nichts anderes, als die Verwendung von sinnvollen, symbolischen Namen für einen Maschinensprache-Befehl. Assemblersprache, oder kurz ausgedrückt Assembler, ist nichts anderes, als die verschiedenen Maschinensprache-Befehle eines bestimmten Prozessors durch vernünftige Abkürzungen auszudrücken. Assembler ist also flicht die universelle Sprache für alle Computer. Vielmehr gibt es spezifische Assemblersprachen für die verschiedenen Prozessortypen wie beispielsweise Z80 oder 6502.

Maschinensprache oder Assembler

Wer in Assembler programmiert, wird feststellen, daß man nicht strukturiert programmieren kann. Assemblersprachen bieten wenig Komfort. Der Vorteil liegt in der sehr hohen Ausführungsgeschwindigkeit eines Assembler-Programms, das genau auf den Aufbau des entsprechenden Mikroprozessors zugeschnitten ist. Der Prozessor kann Assembler-Programme ohne große Umsetzungen ausführen.

Um Assemblersprache zu programmieren, benötigt man einen Assemblierer (Assembler). Der Assemblierer ist ein Übersetzungsprogramm, das ein in Maschinensprache geschriebenes Programm in den maschineninternen Binärcode umwandelt.

Computer und Maschinensprache sind unverrückbar miteinander verbunden. Der Vorliebe des menschlichen Verstandes für eine verständliche Beschreibung von abstrakten Vorgängen verdankt Assembler seine Geburt und sein Weiterleben.

(zu)



Aus: Happy Computer 01 / 1986, Seite

Links

Copyright-Bestimmungen: siehe Über diese Seite