Files
TI-Studium-Mitschriften/Semester 6/COMARCH/Zusammenfassung/Vorlesung 9.md
2025-07-07 19:57:44 +02:00

3.2 KiB
Raw Blame History

📘 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)