Menu
Coddy logo textTech

Zusammenfassung: data.asm erstellen

Teil des Abschnitts Grundlagen der Assembly-Journey von Coddy — Lektion 30 von 45.

challenge icon

Aufgabe

Sie haben verschiedene Möglichkeiten kennengelernt, Daten im .data-Bereich zu definieren:

LektionWas Sie gelernt haben
3.1Der .data-Bereich — wo Daten abgelegt werden
3.2db — Define Byte (1 Byte)
3.3dw — Define Word (2 Bytes)
3.4dd — Define Double Word (4 Bytes)
3.5dq — Define Quad Word (8 Bytes)
3.6Strings mit db — Text erstellen
3.7Das $-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 5000000000

Warum 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:

  1. Einen String namens welcome mit dem Wert 'Welcome!' gefolgt von einem Zeilenumbruch (0x0a)
  2. Eine Konstante namens welcomeLen, die die Länge automatisch mit $ - welcome berechnet
  3. Ein Byte namens score mit dem Wert 99
  4. Ein Word namens year mit dem Wert 2025
  5. Ein Double Word namens population mit dem Wert 8500000
  6. Ein Quad Word namens stars mit 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
    syscall

Alle Lektionen in Grundlagen