Assemblersprache: Grundlagen, Merkmale und Typen
Eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 3,29 KB
Was ist Assemblersprache?
Die Assemblersprache ist eine Low-Level-Programmiersprache, die eine direkte, für Programmierer lesbare Repräsentation des Maschinencodes einer spezifischen Computerarchitektur darstellt.
Merkmale der Assemblersprache
- Komplexität: Die Programmierung in Assembler ist anspruchsvoll in Bezug auf das Erlernen, Verstehen, Lesen, Schreiben, Debuggen und Warten, was die Entwicklung von Hochsprachen notwendig machte.
- Leistung: Trotz des Leistungsverlusts bei Kompilierungsvorgängen sind moderne Computer heute schnell genug, um diesen auszugleichen.
- Portabilität: Assembler-Code ist nicht portabel und an die jeweilige Hardware gebunden.
- Zeitaufwand: Die Programmierung ist zeitintensiv.
- Geschwindigkeit: Sorgfältig optimierte Assembler-Programme können zwischen 5 und 100 Mal schneller ausgeführt werden als Programme in Hochsprachen.
- Speichereffizienz: Ein gut geschriebenes Assembler-Programm benötigt oft nur die Hälfte des Speicherplatzes einer entsprechenden Hochsprachen-Implementierung.
- Hardwarenahe Kontrolle: Assembler ermöglicht die Erstellung von Code-Segmenten, die in Hochsprachen nicht realisierbar sind.
Abstraktion und Entwicklung
Assembler sind einfacher zu schreiben als Compiler für Hochsprachen und existieren bereits seit den 1950er Jahren. Moderne Assembler bieten Abstraktionsmöglichkeiten wie:
- Komplexe Kontrollstrukturen.
- Funktionsdeklarationen auf hoher Ebene.
- Datentypen wie Strukturen, Records, Unions, Klassen und Ensembles.
- Anspruchsvolle Makroverarbeitung.
Ein Assembler-Programm besteht aus einer Reihe von Anweisungen, die den Ablauf der Befehle steuern, welche in den Arbeitsspeicher geladen werden.
Maschinencode und Übersetzung
Die Umwandlung von Assembler in Maschinencode erfolgt durch ein Assembler-Programm; die Rückübersetzung wird von einem Disassembler durchgeführt. Im Gegensatz zu Hochsprachen besteht meist eine 1:1-Korrespondenz zwischen Assembler-Befehlen und Maschinensprache.
Was ist Maschinencode?
Maschinencode besteht aus einfachen Anweisungen, die je nach Prozessorstruktur spezifische Register für arithmetische Operationen, Steuerungsfunktionen oder Speicheradressierungen (Offsets) definieren.
Klassifizierung von Assemblern
- Cross-Assembler: Nutzen leistungsstarke Maschinen, um Programme für spezielle Zielsysteme zu entwickeln.
- Resident-Assembler: Werden direkt in den Arbeitsspeicher des Zielcomputers geladen, um dort das Objektprogramm zu erzeugen.
- Makro-Assembler: Ermöglichen die Verwendung von Makroinstruktionen.
- Mikro-Assembler: Dienen der Programmierung der Firmware (Mikrocode) eines Prozessors.
- Ein-Pass-Assembler: Lesen das Quellprogramm und übersetzen es direkt in einem Durchgang in Maschinencode.
- Zwei-Pass-Assembler: Arbeiten in zwei Phasen: Im ersten Durchgang wird eine Symboltabelle erstellt, im zweiten Durchgang erfolgt die vollständige Übersetzung unter Verwendung dieser Symbole.