Was ist Assembler?

Für alle die es noch nicht wissen sollten: Assembler ist die maschinennaheste Programmiersprache, die unter den verschiedenen Prozessorfamilien diverser Computertypen mehr oder weniger stark voneinander abweicht.

Der Begriff wurde direkt aus dem Englischen abgeleitet: »Assemble« bedeutet nämlich montieren, was den Nagel auf den Kopf trifft: Programme in Assembler zu schreiben, heißt Prozessorbefehle zu verketten und wie ein Bauwerk zu montieren. Für die Welt der 8088/80×86-Prozessoren, mit denen IBM-kompatible PCs ausgestattet sind, gilt: Die Mnemonics, also symbolischen Befehle in einem Assembler-Programm werden mit Hilfe einer Übersetzer-Routine (z. B. MASM von Microsoft oder TASM von Borland) in einen numerischen Maschinencode übersetzt. Der Begriff Mnemonic wurde übrigens aus dem griechischen »mneme« abgeleitet, was soviel wie Gedächtnisstütze bedeutet. Normalerweise sind Maschinenbefehle nämlich unübersichtliche Kombinationen aus hexadadezimalen und binären Zahlen. Damit es der Assemblerprogrammierer leichter hat, erfand unter anderem auch der amerikanische Chip-Hersteller Intel für seine Prozessoren kurze, symbolische Befehlsnamen, die sich leichter merken lassen als beispielsweise »8B D8«, was nämlich nach Intels Prozessorsprache »MOV BX,AX« bedeutet.

Nach fehlerloser »Assemblierung«, so heißt die Übersetzung, entsteht eine Objekt-Datei (PROGRAMM.OBJ) mit relokatiblen, also verschiebbaren Referenz-Adressen. Dadurch können Sie mehrere Objekt-Dateien aus verschiedenen »Bibliotheken« kombinieren und zu einem ausführbaren Programm verknüpfen. Dies geschieht mit einem Linker. Link kommt aus dem Englischen und heißt binden. Es entsteht ein EXE-Programm. Neben dem eigentlichen Programm sind eine Reihe von Informationen am Kopf des Programms hinzugekommen. Diese werden erst beim Laden, kurz vor der Ausführung der Anwendung aufbereitet. Die Größe eines EXE-Programmes wird nur durch den Arbeitspeicher des PCs begrenzt. Ist das Programm nicht größer als 64 KByte, und beziehen sich sämtliche Adressierungen auf ein einziges Speicher-Segment, so können Sie das EXE-Programm mit dem bis zur PC-DOS-Version 3.2 zum Lieferumfang gehörenden Befehl »EXE2BIN« (Sprich »Exe to Bin«) in ein COM-Programm umwandeln. Das Programm wird vollständig von relokatiblen Referenzen befreit und beginnt im Unterschied zu EXE-Programmen ohne zusätzlichen Kopf, also direkt mit einem ausführbaren Befehl seine Arbeit. Auf diese Weise komprimiert, kann es schneller als ein EXE-Programm geladen und zur Ausführung gebracht werden. Das EXE- und OBJ-Programm können Sie anschließend löschen.

Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot