Menu
Coddy logo textTech

Le symbole $

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

Lorsque vous affichez une chaîne à l’aide de l’appel système write (chapitre 5), vous devez indiquer au processeur combien d’octets afficher.

Vous pourriez compter les caractères manuellement :

message db 'Hello', 0x0a    ; 6 octets (H e l l o newline)
mov rdx, 6                  ; Comptage manuel

Mais le comptage manuel est lent et sujet aux erreurs. Si vous modifiez la chaîne, vous devez recompter et mettre à jour le nombre.

La solution : calcul automatique de la longueur à l’aide de $

$ est le compteur d’emplacement. Il représente l’adresse mémoire actuelle où l’octet suivant sera placé.

Exemple 1 : chaîne simple

section .data
    message db 'Hello', 0x0a
    msgLen equ $ - message

Comment cela fonctionne :

  • message est l’adresse de départ (exemple : 1000)
  • Après avoir stocké 6 octets, $ devient 1006
  • $ - message = 1006 − 1000 = 6 (la longueur)

Remarque : equ signifie equate. Il crée une constante : un nom qui représente une valeur.

Exemple 2 : chaînes multiples

section .data
    first db 'Hi', 0x0a
    len1 equ $ - first      ; len1 = 3 ('H','i', nouvelle ligne)
    second db 'Hello', 0x0a
    len2 equ $ - second     ; len2 = 6 ('H','e','l','l','o', nouvelle ligne)

Chaque chaîne possède sa propre longueur, calculée automatiquement. Le $ est réinitialisé pour chaque calcul, car il fait toujours référence à la position actuelle juste après chaque chaîne.

challenge icon

Défi

Facile

Créez une chaîne appelée city avec la valeur 'Paris' suivie d’un retour à la ligne (0x0a). Créez ensuite une constante appelée cityLen qui calcule automatiquement la longueur à l’aide de $ - city.

Essayez vous-même

%include "data.asm"

section .text
    global _start

_start:
    mov rax, 1
    mov rdi, 1
    mov rsi, city
    mov rdx, cityLen
    syscall
    
    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