Zwei-Dateien-Muster
Teil des Abschnitts Grundlagen der Assembly-Journey von Coddy — Lektion 5 von 45.
Im Laufe dieses Kurses werden Sie jedes Programm mit zwei separaten Dateien schreiben:
| Datei | Zweck |
|---|---|
data.asm | Speichert alle Daten (Strings, Zahlen, Variablen) |
main.asm | Speichert den gesamten Code (Anweisungen, Logik, Ablauf) |
Dies wird vom Assembler nicht verlangt. Sie könnten alles in einer Datei unterbringen. Aber die Trennung von Code und Daten macht Ihre Programme übersichtlicher, leichter lesbar und einfacher zu debuggen.
Warum zwei Dateien?
- Organisation — Daten und Code haben unterschiedliche Zwecke. Sie getrennt zu halten, hilft Ihnen, klar zu denken.
- Wiederverwendbarkeit — Sie können dieselbe
data.asmmit verschiedenenmain.asm-Dateien verwenden.
- Lesbarkeit — Sie müssen nie durch lange Zeichenfolgen scrollen, um Ihren Code zu finden.
- Branchenübliche Praxis — Echte Projekte trennen Code und Daten (wenn auch oft auf komplexere Weise).
Wie es funktioniert:
Die Datei main.asm bindet die Datei data.asm mithilfe der %include-Direktive ein. Dies weist den Assembler an: „füge den gesamten Inhalt von data.asm genau hier vor dem Assemblieren ein.“
Die beiden Dateien nebeneinander:
| data.asm | main.asm |
|---|---|
section .data | %include "data.asm" |
| (Variablen kommen hierhin) | section .text |
global _start | |
_start: | |
| (Anweisungen kommen hierhin) |
Was jeder Abschnitt macht:
| Abschnitt | Zweck | Welche Datei? |
|---|---|---|
section .data | Enthält Daten, die im Speicher vorhanden sind, wenn das Programm ausgeführt wird | 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: | Label, an dem die Programmausführung beginnt | main.asm |
Sie müssen sich
section .data,section .text,global _startoder_start:im Moment nicht merken. Wir werden jeden dieser Befehle in den folgenden Lektionen im Detail behandeln. Schauen Sie sich vorerst nur das Gesamtbild an und verstehen Sie 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