3.2 KiB
📘 Zusammenfassung: V9 Assembler – Computerarchitektur
🏷 Begriffsklärungen
| Begriff | Bedeutung |
|---|---|
| Assembler | Programm, das Assemblersprache in Maschinensprache übersetzt |
| Assemblersprache | Maschinennahe Programmiersprache mit 1:1-Abbildung auf Maschinenbefehle |
| Cross-Assembler | Läuft auf Host-System, erzeugt Maschinencode für Target-System |
| Disassembler | Rückübersetzt Maschinencode in Assembler (Bezeichner, Kommentare gehen meist verloren) |
| Macro-Assembler | Unterstützt Makros zur Vereinfachung wiederkehrender Befehlssequenzen |
| Pseudobefehl | Befehl für den Assembler, der im Maschinencode aus mehreren echten Instruktionen besteht |
🎯 Vorteile von Assemblersprache
✅ Direkter Zugriff auf alle Merkmale der Hardware
✅ Sehr kompakter & schneller Code möglich
✅ Zeitkritische Routinen exakt steuerbar
✅ Besseres Verständnis der Prozessorarchitektur
⚠️ Nachteile von Assemblersprache
❌ Schwierige Programmierung & Wartung
❌ Zeitaufwändig, keine modernen Programmierkonzepte
❌ Hardwareabhängig (nicht portabel)
👉 Kompromiss: Inline-Assembler in Hochsprachen für kritische Teile
🖥️ MASM (Microsoft Macro Assembler)
-
Verwendet für x86-Architektur
-
Teil von Microsoft Visual Studio
-
Anweisungsformat:
[Label] Opcode Operanden ; Kommentar -
Pseudobefehle: Anweisungen an den Assembler, nicht an die CPU
🔁 Makros
-
Makrodefinition: wie eine Inline-Funktion
-
Makroaufruf: Ersetzung durch Makro-Rumpf
-
Mit Parametern: ermöglicht Wiederverwendung mit unterschiedlichen Werten
-
Vorteil ggü. Prozeduraufruf: kein Overhead durch Call/Return
🏃 Zwei-Pass-Assembler
1️⃣ Erster Lauf
-
Aufbau von Tabellen:
-
Symboltabelle: Marken, Adressen
-
Opcode-Tabelle: Mnemonics & Binärcode
-
Pseudobefehlstabelle
-
-
Berechnung der Instruction Location Counter (ILC)
2️⃣ Zweiter Lauf
-
Übersetzung in Maschinencode
-
Nutzung der Symboltabelle für Adressauflösungen
-
Erzeugung des Objektprogramms
🔗 Binden (Linking) & Laden
-
Linker-Aufgaben:
-
Erstellen des virtuellen Adressraums
-
Auflösen externer Referenzen
-
Relokation (Anpassung der Speicheradressen)
-
-
Relokationsregister: Hardware fügt Startadresse hinzu
-
Paging: nur Seitentabelle wird geändert
🌐 Dynamisches Binden (Dynamic Linking)
| Plattform | Mechanismus |
|---|---|
| MULTICS | Linkage-Segment mit Prozedur-Infos, Ausnahmebehandlung beim ersten Aufruf |
| Windows | DLLs (Dynamic Link Libraries), Implicit & Explicit Linking |
| Unix | Shared Libraries (SO-Dateien) |
📝 Für die Klausur merken
✅ Unterschied Assembler ↔ Compiler
✅ Vor- & Nachteile Assemblersprache
✅ Zwei-Pass-Assembler: Ablauf & Tabellen
✅ Unterschied Pseudobefehl ↔ echter Maschinenbefehl
✅ Makros: Definition, Aufruf, Parameter
✅ Linker-Aufgaben: Relokation, externe Referenzen
✅ Dynamisches Binden: Windows (DLL), Unix (SO)