Menu
Coddy logo textTech

db – Byte definieren

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

Die grundlegendste Art, Daten im Speicher zu erstellen, ist dbDefine Byte. Es erstellt ein Byte (8 Bit) an Daten.

Syntax:

label db value
  • label — der Name, den Sie dieser Speicheradresse geben
  • 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", das 25 enthält
    grade db 'A'       ; Erstellt ein Byte namens "grade", das 65 enthält (ASCII für 'A')
    zero db 0          ; Erstellt ein Byte namens "zero", das 0 enthält

Was man in einem Byte speichern kann:

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

Mehrere Bytes in einer Zeile:

Sie können mehrere Bytes hintereinander durch Kommas getrennt definieren:

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

Wie man ein Byte in seinem Code verwendet:

section .data
    myByte db 42

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

Wichtige Regel:

RegelErklärung
Wert muss in 1 Byte passen0 bis 255 (oder ein einzelnes Zeichen)
Verwenden Sie 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 ein Byte namens score mit dem Wert 15 in der .data-Sektion.

Schreibe die data.asm-Datei mit der korrekten .data-Sektion und der db-Direktive.

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