Menu
Coddy logo textTech

Zusammenfassung: data.asm erstellen

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

challenge icon

Aufgabe

Du hast mehrere Möglichkeiten kennengelernt, Daten im Abschnitt .data zu definieren:

LektionWas du gelernt hast
3.1Der Abschnitt .data, in dem Daten abgelegt werden
3.2db: Byte definieren (1 Byte)
3.3dw: Word definieren (2 Bytes)
3.4dd: Double Word definieren (4 Bytes)
3.5dq: Quad Word definieren (8 Bytes)
3.6Zeichenketten mit db: Text erstellen
3.7Das 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 5000000000

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

  1. Eine Zeichenkette namens welcome mit dem Wert „Welcome!“, gefolgt von einem Zeilenumbruch (0x0a)
  2. Eine Konstante namens welcomeLen, die die Länge automatisch mithilfe von $ - 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 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
    syscall

Alle Lektionen in Grundlagen

Übe selbstständig: Assembly-Playground