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 db — Define Byte. Es erstellt ein Byte (8 Bit) an Daten.
Syntax:
label db valuelabel— der Name, den Sie dieser Speicheradresse gebendb— 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", 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ältWas man in einem Byte speichern kann:
| 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:
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, 67Wie 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 myByteWichtige Regel:
| Regel | Erklärung |
|---|---|
| Wert muss in 1 Byte passen | 0 bis 255 (oder ein einzelnes Zeichen) |
Verwenden Sie 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 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 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