Menu
Coddy logo textTech

db - Définir un octet

Fait partie de la section Fondamentaux du Journey Assembly de Coddy. Leçon 24 sur 45.

La manière la plus basique de créer des données en mémoire est db : Define Byte. Cela crée un octet (8 bits) de données.

Syntaxe :

label db value
  • label : le nom que tu donnes à cette adresse mémoire
  • db : directive Define Byte
  • value : le nombre ou le caractère à stocker (0 à 255)

Exemples :

section .data
    age db 25          ; Crée un octet appelé "age" contenant 25
    grade db 'A'       ; Crée un octet appelé "grade" contenant 65 (ASCII pour 'A')
    zero db 0          ; Crée un octet appelé "zero" contenant 0

Ce que vous pouvez stocker dans un byte :

TypePlageExemple
Petit number0 à 255db 100
character'A' à 'z'db 'X'
ASCII code0 à 255db 65 (identique à 'A')

Plusieurs bytes sur une ligne :

Vous pouvez définir plusieurs bytes à la suite en utilisant des virgules :

section .data
    numbers db 5, 10, 15, 20    ; Crée 4 octets : 5, 10, 15, 20
    letters db 'A', 'B', 'C'    ; Crée 3 octets : 65, 66, 67

Comment utiliser un octet dans votre code :

section .data
    myByte db 42

section .text
    mov al, [myByte]    ; Charge la valeur 42 dans al
    add al, 1           ; al devient 43
    mov [myByte], al    ; Stocke 43 de nouveau dans myByte

Règle importante :

RègleExplication
La valeur doit tenir dans 1 byteDe 0 à 255 (ou un seul caractère)
Utilisez al pour charger ou storeal est le registre de 8 bits pour les bytes

Erreur courante :

; Faux : tentative de stocker un nombre trop grand pour un octet
section .data
    error db 300    ; 300 est trop grand (max 255)
challenge icon

Défi

Facile

Crée un octet appelé score avec la valeur 15 dans la section .data.

Écris le fichier data.asm avec la section .data correcte et la directive db.

Essayez vous-même

%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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Playground Assembly