Zusammenfassung: data.asm erstellen
Teil des Abschnitts Grundlagen der Assembly-Journey von Coddy. Lektion 30 von 45.
Aufgabe
Du hast mehrere Möglichkeiten kennengelernt, Daten im Abschnitt .data zu definieren:
| Lektion | Was du gelernt hast |
|---|---|
| 3.1 | Der Abschnitt .data, in dem Daten abgelegt werden |
| 3.2 | db: Byte definieren (1 Byte) |
| 3.3 | dw: Word definieren (2 Byte) |
| 3.4 | dd: Double Word definieren (4 Byte) |
| 3.5 | dq: Quad Word definieren (8 Byte) |
| 3.6 | Strings mit db: Text erstellen |
| 3.7 | Das Symbol $: Stringlängen automatisch berechnen |
Jetzt ist es an der Zeit, alles zusammenzufügen und eine vollständige Datei data.asm zu erstellen.
Was du in dieser Challenge erstellen wirst:
Eine Datei data.asm, die Folgendes enthält:
- Einen String mit automatischer Längenberechnung
- Einen Byte-Wert
- Einen Word-Wert
- Einen Double-Word-Wert
- Einen Quad-Word-Wert
Alles übersichtlich im Abschnitt .data angeordnet.
Beispiel für eine vollständige data.asm:
section .data
; String with automatic length
msg db 'Hello', 0x0a
msgLen equ $ - msg
; Numbers of different sizes
smallNum db 100
mediumNum dw 5000
largeNum dd 100000
veryLarge dq 5000000000Warum das wichtig ist:
In den nächsten Kapiteln wirst du Dateien wie diese data.asm verwenden, um die Daten zu speichern, die deine Programme benötigen. Die Datei main.asm bindet deine Datei data.asm ein und verwendet die Labels und Längen, die du definiert hast.
Challenge
Erstelle eine vollständige Datei data.asm mit Folgendem:
- Einen String namens
welcomemit dem Wert 'Welcome!', gefolgt von einem Zeilenumbruch (0x0a) - Eine Konstante namens
welcomeLen, die die Länge automatisch mit$ - welcomeberechnet - Ein Byte namens
scoremit dem Wert 99 - Ein Word namens
yearmit dem Wert 2025 - Ein Double Word namens
populationmit dem Wert 8500000 - Ein Quad Word namens
starsmit dem Wert 100000000000
Alles im Abschnitt .data.
Probier es selbst
%include "data.asm"
section .text
global _start
_start:
; Gib die Begrüßungszeichenfolge aus
mov rax, 1
mov rdi, 1
mov rsi, welcome
mov rdx, welcomeLen
syscall
; Beenden
mov rax, 60
mov rdi, 0
syscallAlle Lektionen in Grundlagen
1Die Maschine
Was ist eine CPUSpeicherRegister vs. SpeicherWie Befehle funktionierenZwei-Dateien-MusterDie x86-64 Architektur4Datendefinition
Der .data-Abschnittdb – Byte definierendw – Word definierendd – Double Word definierendq – Quad Word definierenStrings mit dbDas $-SymbolZusammenfassung: data.asm erstellenÜbe selbstständig: Assembly-Playground