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 Bytes) |
| 3.4 | dd: Double Word definieren (4 Bytes) |
| 3.5 | dq: Quad Word definieren (8 Bytes) |
| 3.6 | Zeichenketten mit db: Text erstellen |
| 3.7 | Das Symbol $: Zeichenkettenlä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 Herausforderung erstellen wirst:
Eine Datei data.asm, die Folgendes enthält:
- Eine Zeichenkette mit automatischer Längenberechnung
- Einen Byte-Wert
- Einen Word-Wert
- Einen Double-Word-Wert
- Einen Quad-Word-Wert
Alles ordnungsgemäß im Abschnitt .data organisiert.
Beispiel für eine vollständige <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 wirst du Dateien wie data.asm verwenden, um die Daten zu speichern, die deine Programme benötigen. Die Datei main.asm wird deine data.asm einbinden und die von dir definierten Bezeichnungen und Längen verwenden.
Herausforderung
Erstelle eine vollständige Datei data.asm mit Folgendem:
- Eine Zeichenkette namens
welcomemit dem Wert „Welcome!“, gefolgt von einem Zeilenumbruch (0x0a) - Eine Konstante namens
welcomeLen, die die Länge automatisch mithilfe von$ - 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 Abschnitts .data.
Probier es selbst
%include "data.asm"
section .text
global _start
_start:
; Den welcome-String 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Übe selbstständig: Assembly-Playground