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 simple de créer des données en mémoire est dbDefine Byte. Elle crée un octet (8 bits) de données.

Syntaxe :

label db value
  • label — le nom que vous donnez à cette adresse mémoire
  • db — directive Define Byte (définir un octet)
  • value — le nombre ou le caractère à stocker (0 à 255)

Exemples :

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

Ce que vous pouvez stocker dans un octet :

TypePlageExemple
Petit nombre0 à 255db 100
Caractère'A' à 'z'db 'X'
Code ASCII0 à 255db 65 (identique à 'A')

Plusieurs octets sur une seule ligne :

Vous pouvez définir plusieurs octets à 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]    ; Charger la valeur 42 dans al
    add al, 1           ; al devient 43
    mov [myByte], al    ; Stocker à nouveau 43 dans myByte

Règle importante :

RègleExplication
La valeur doit tenir sur 1 octet0 à 255 (ou un seul caractère)
Utilisez al pour charger ou stockeral est le registre 8 bits pour les octets

Erreur courante :

; Erreur : tentative de stockage d'un nombre trop grand pour un octet
section .data
    error db 300    ; 300 est trop grand (max 255)
challenge icon

Défi

Facile

Créez un octet nommé score avec la valeur 15 dans la section .data.

Écrivez 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