Menu
Coddy logo textTech

db – Byte definieren

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

Die grundlegendste Möglichkeit, Daten im Speicher zu erstellen, ist db: Byte definieren. Dabei wird ein Byte (8 Bits) an Daten erstellt.

Syntax:

label db value
  • label: der Name, den du dieser Speicheradresse gibst
  • db: Define-Byte-Direktive
  • value: die zu speichernde Zahl oder das zu speichernde Zeichen (0 bis 255)

Beispiele:

section .data
    age db 25          ; Erstellt ein Byte namens "age" mit dem Wert 25
    grade db 'A'       ; Erstellt ein Byte namens "grade" mit dem Wert 65 (ASCII für 'A')
    zero db 0          ; Erstellt ein Byte namens "zero" mit dem Wert 0

Was du in einem Byte speichern kannst:

TypBereichBeispiel
Kleine Zahl0 bis 255db 100
Zeichen'A' bis 'z'db 'X'
ASCII-Code0 bis 255db 65 (entspricht 'A')

Mehrere bytes in einer Zeile:

Du kannst mehrere bytes hintereinander mithilfe von Kommas definieren:

section .data
    numbers db 5, 10, 15, 20    ; Erstellt 4 Bytes: 5, 10, 15, 20
    letters db 'A', 'B', 'C'    ; Erstellt 3 Bytes: 65, 66, 67

So verwendest du ein byte in deinem Code:

section .data
    myByte db 42

section .text
    mov al, [myByte]    ; Lade den Wert 42 in al
    add al, 1           ; al wird 43
    mov [myByte], al    ; Speichere 43 zurück in myByte

Wichtige Regel:

RegelErklärung
Der Wert muss in 1 Byte passen0 bis 255 (oder ein einzelnes Zeichen)
Verwende al zum Laden oder Speichernal ist das 8-Bit-Register für Bytes

Häufiger Fehler:

; Falsch: Versuch, eine Zahl zu speichern, die zu groß für ein Byte ist
section .data
    error db 300    ; 300 ist zu groß (max 255)
challenge icon

Aufgabe

Einfach

Erstelle einen byte namens score mit dem Wert 15 im Abschnitt .data.

Schreibe die Datei data.asm mit dem korrekten Abschnitt .data und der Direktive db.

Probier es selbst

%include "data.asm"

section .text
    global _start

_start:
    mov al, [score]
    
    mov r12, rax
    
    add al, 48
    mov [digit], al
    
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    mov rax, 60
    mov rdi, 0
    syscall

section .bss
    digit resb 1
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Assembly-Playground