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 valuelabel: der Name, den du dieser Speicheradresse gibstdb: Define-Byte-Direktivevalue: 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 0Was du in einem Byte speichern kannst:
| Typ | Bereich | Beispiel |
|---|---|---|
| Kleine Zahl | 0 bis 255 | db 100 |
| Zeichen | 'A' bis 'z' | db 'X' |
| ASCII-Code | 0 bis 255 | db 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, 67So 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 myByteWichtige Regel:
| Regel | Erklärung |
|---|---|
| Der Wert muss in 1 Byte passen | 0 bis 255 (oder ein einzelnes Zeichen) |
Verwende al zum Laden oder Speichern | al 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)Aufgabe
EinfachErstelle 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 1Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
1Die Maschine
Was ist eine CPUSpeicherRegister vs. SpeicherWie Befehle funktionierenZwei-Dateien-MusterDie x86-64 ArchitekturÜbe selbstständig: Assembly-Playground