Zusammenfassung: data.asm erstellen
Teil des Abschnitts Grundlagen der Assembly-Journey von Coddy — Lektion 30 von 45.
Aufgabe
Sie haben verschiedene Möglichkeiten kennengelernt, Daten im .data-Bereich zu definieren:
| Lektion | Was Sie gelernt haben |
|---|---|
| 3.1 | Der .data-Bereich — wo Daten abgelegt werden |
| 3.2 | db — Define Byte (1 Byte) |
| 3.3 | dw — Define Word (2 Bytes) |
| 3.4 | dd — Define Double Word (4 Bytes) |
| 3.5 | dq — Define Quad Word (8 Bytes) |
| 3.6 | Strings mit db — Text erstellen |
| 3.7 | Das $-Symbol — automatische Berechnung von String-Längen |
Jetzt ist es an der Zeit, alles zusammenzuführen und eine vollständige data.asm-Datei zu erstellen.
Was Sie in dieser Herausforderung erstellen werden:
Eine data.asm-Datei, 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 ordnungsgemäß im .data-Bereich organisiert.
Beispiel einer vollständigen <strong>data.asm</strong>:
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 werden Sie data.asm-Dateien wie diese verwenden, um die Daten zu speichern, die Ihre Programme benötigen. Die Datei main.asm wird Ihre data.asm einbinden und die von Ihnen definierten Labels und Längen verwenden.
Herausforderung
Erstellen Sie eine vollständige data.asm-Datei mit folgendem Inhalt:
- 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 innerhalb des .data-Bereichs.
Probier es selbst
%include "data.asm"
section .text
global _start
_start:
; Willkommensnachricht ausgeben
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