Funktionen und Typen von Assemblern erklärt
Eingeordnet in Informatik
Geschrieben am in
mit einer Größe von 2,51 KB
Funktionen eines Assemblers
Die primäre Aufgabe eines Assemblers ist die Übersetzung von Assembler-Programmcode in Maschinensprache. Im Wesentlichen übernimmt der Assembler folgende Aufgaben:
- Umwandlung von Opcodes: Konvertierung von Mnemonics (z. B. LDA, STX) in den entsprechenden Maschinencode.
- Symbolische Operanden: Umwandlung von symbolischen Operanden (Tags oder Variablen) in die tatsächlichen Speicheradressen.
- Formatierung: Erstellung der Anweisungen in Maschinensprache im korrekten Format.
- Konstanten: Umwandlung der im Programm definierten Konstanten in ihre reale Darstellung.
- Listing-Erstellung: Erstellung eines Listings, das den Assemblercode dem Maschinencode gegenüberstellt.
- Assembler-Direktiven: Verarbeitung von Steuerbefehlen, die den Assemblierungsprozess steuern (z. B. Speicherreservierung für Variablen), ohne direkt in Maschinencode übersetzt zu werden.
Im Allgemeinen können die meisten Aufgaben zeilenweise durchgeführt werden. Eine Schwierigkeit ergibt sich jedoch, wenn eine Anweisung auf ein Symbol verweist, das erst später im Programm definiert wird. In diesem Fall kennt der Assembler die Adresse des Operanden noch nicht, und die Anweisung kann nicht korrekt aufgebaut werden.
Ein-Phasen-Assembler
Diese Assembler lesen das Quellprogramm und übersetzen es direkt in Maschinensprache oder führen Pseudobefehle aus. Gleichzeitig bauen sie die Symboltabelle auf, während Variablendefinitionen und Labels erscheinen.
Aufgrund ihrer Arbeitsweise müssen Symbole definiert sein, bevor sie in einer Anweisung referenziert werden. Diese Assembler sind einfach und benötigen wenig Speicherplatz, haben jedoch den Nachteil einer eingeschränkten Flexibilität.
Zwei-Phasen-Assembler
Zwei-Phasen-Assembler führen die Übersetzung in zwei Schritten durch:
- Erste Phase: Das Quellprogramm wird gelesen und eine vollständige Symboltabelle erstellt.
- Zweite Phase: Das Quellprogramm wird erneut gelesen und vollständig übersetzt, da nun alle Symbole und deren Adressen bekannt sind.