Zwei-Dateien-Muster
Teil des Abschnitts Grundlagen der Assembly-Journey von Coddy. Lektion 5 von 45.
Während dieses Kurses wirst du jedes Programm mithilfe von zwei separaten Dateien schreiben:
| Datei | Zweck |
|---|---|
data.asm | Speichert alle Daten (Zeichenketten, Zahlen, Variablen) |
main.asm | Speichert den gesamten Code (Anweisungen, Logik, Ablauf) |
Dies ist für den Assembler nicht erforderlich. Du könntest alles in eine Datei schreiben. Wenn du jedoch Code und Daten trennst, werden deine Programme übersichtlicher, leichter zu lesen und einfacher zu debuggen.
Warum zwei Dateien?
- Organisation: Daten und Code haben unterschiedliche Zwecke. Wenn du sie getrennt hältst, kannst du klarer denken.
- Wiederverwendbarkeit: Du kannst dieselbe
data.asmmit verschiedenenmain.asm-Dateien verwenden.
- Lesbarkeit: Du musst nie durch lange Zeichenketten scrollen, um deinen Code zu finden.
- Branchenpraxis: In realen Projekten werden Code und Daten getrennt (wenn auch oft auf komplexere Weise).
So funktioniert es:
Die Datei main.asm bindet die Datei data.asm mithilfe der Direktive %include ein. Dies teilt dem Assembler mit: „Füge den gesamten Inhalt von data.asm genau hier ein, bevor du assemblierst.“
Die beiden Dateien nebeneinander:
| data.asm | main.asm |
|---|---|
section .data | %include "data.asm" |
| (Variablen kommen hierher) | section .text |
global _start | |
_start: | |
| (Anweisungen kommen hierher) |
Aufgabe der einzelnen Abschnitte:
| Abschnitt | Zweck | Welche Datei? |
|---|---|---|
section .data | Enthält Daten, die beim Ausführen des Programms im Speicher vorhanden sind | data.asm |
section .text | Enthält die ausführbaren Anweisungen (Code) | main.asm |
global _start | Macht den Einstiegspunkt für den Linker sichtbar | main.asm |
_start: | Marke, an der die Programmausführung beginnt | main.asm |
Du musst dir
section .data,section .text,global _startoder_start:jetzt nicht merken. Wir werden jeden dieser Befehle in den folgenden Lektionen ausführlich behandeln. Konzentriere dich zunächst nur auf das große Ganze und verstehe die Struktur der beiden Dateien.
Probier es selbst
Diese Lektion enthält keine Programmieraufgabe.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
1Die Maschine
Was ist eine CPUSpeicherRegister vs. SpeicherWie Befehle funktionierenZwei-Dateien-MusterDie x86-64 ArchitekturÜbe selbstständig: Assembly-Playground