Menu
Coddy logo textTech

Chaînes de caractères avec db

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

Tu sais déjà que db définit un seul octet. Mais db peut également définir une chaîne : plusieurs octets à la suite.

Syntaxe :

label db 'text here'

Exemple :

section .data
    message db 'Hello'

Cela crée 5 bytes en mémoire : 'H', 'e', 'l', 'l', 'o'

Ce qui se passe en mémoire :

AdresseOctetValeur ASCII
message'H'72
message+1'e'101
message+2'l'108
message+3'l'108
message+4'o'111

Ajouter un retour à la ligne :

Pour afficher une chaîne et passer à la ligne suivante, ajoutez 0x0a (caractère de nouvelle ligne) :

section .data
    message db 'Hello', 0x0a

Maintenant, string compte 6 bytes : 'H','e','l','l','o', newline

Chaînes multiples :

section .data
    hello db 'Hello', 0x0a
    goodbye db 'Goodbye', 0x0a

Pourquoi est-ce important :

Les chaînes sont les données les plus courantes que vous utiliserez en assembleur. L’appel système write (que vous apprendrez au chapitre 5) affiche les chaînes en lisant des bytes en mémoire jusqu’à ce qu’il atteigne la longueur que vous lui indiquez.

Remarque importante :

Les chaînes sont simplement des bytes. Le CPU ne sait pas et ne se soucie pas que 'H' soit une lettre. Il s’agit simplement du nombre 72. Le syscall write interprète ces nombres comme des caractères lors de l’affichage.

challenge icon

Défi

Facile

Créez une chaîne nommée greeting avec la valeur 'Hi' suivie d’un saut de ligne (0x0a) dans la section .data.

Essayez vous-même

%include "data.asm"

section .text
    global _start

_start:
    ; Afficher la chaîne en utilisant l'appel système write
    mov rax, 1
    mov rdi, 1
    mov rsi, greeting
    mov rdx, 3           ; 'H', 'i', newline = 3 octets
    syscall
    
    ; Quitter
    mov rax, 60
    mov rdi, 0
    syscall
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