Menu
Coddy logo textTech

L'importance du saut de ligne

Fait partie de la section Fondamentaux du Journey Assembly de Coddy — leçon 41 sur 45.

Vous avez ajouté 0x0a (saut de ligne) à la fin de vos chaînes de caractères. Mais que se passe-t-il si vous l'oubliez ?

Sans saut de ligne :

Le texte s'affiche, mais le curseur reste sur la même ligne. Toute sortie future apparaîtra juste à côté.

Exemple sans saut de ligne :

section .data
    first db 'Hello'
    firstLen equ $ - first
    second db 'World'
    secondLen equ $ - second

section .text
    mov rax, 1
    mov rdi, 1
    mov rsi, first
    mov rdx, firstLen
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, second
    mov rdx, secondLen
    syscall

Sortie :

HelloWorld

Aucun espace. Aucun saut de ligne. Tout est collé.

Avec un saut de ligne :

section .data
    first db 'Hello', 0x0a
    firstLen equ $ - first
    second db 'World', 0x0a
    secondLen equ $ - second

Sortie :

Hello World

Chaque chaîne s'affiche sur sa propre ligne.

Ce que fait le saut de ligne :

CaractèreASCIIEffet
0x0a10Déplace le curseur au début de la ligne suivante

Erreurs courantes liées aux sauts de ligne :

ErreurRésultat
Aucun saut de ligneLe texte s'enchaîne sur une seule ligne
Saut de ligne uniquement à la fin de la dernière chaîneLes chaînes précédentes s'enchaînent, la dernière passe à la ligne suivante
Saut de ligne au milieu d'une chaîneSauts de ligne à des endroits inattendus

La règle de sécurité :

Ajoutez toujours 0x0a à la fin de chaque chaîne que vous voulez sur sa propre ligne.

challenge icon

Défi

On vous donne trois chaînes de caractères sans sauts de ligne. Votre tâche consiste à les afficher de manière à ce qu'elles apparaissent sur trois lignes distinctes.

Les chaînes sont :

ChaîneValeur
word1'Apple'
word2'Banana'
word3'Cherry'

Exigences :

  • Définissez chaque chaîne avec un saut de ligne (0x0a) à la fin
  • Calculez automatiquement la longueur de chaque chaîne
  • Affichez les trois chaînes en utilisant l'appel système write
  • Quittez proprement avec le code 0

Essayez vous-même

section .data
    ; TODO : Définir word1 avec 'Apple' et un saut de ligne
    ; TODO : Définir word2 avec 'Banana' et un saut de ligne
    ; TODO : Définir word3 avec 'Cherry' et un saut de ligne
    ; TODO : Calculer les longueurs pour chaque chaîne

section .text
    global _start

_start:
    ; TODO : Afficher word1
    ; TODO : Afficher word2
    ; TODO : Afficher word3

    ; TODO : Quitter proprementsection .data
    word1 db 'Apple', 0x0a
    word1Len equ $ - word1
    word2 db 'Banana', 0x0a
    word2Len equ $ - word2
    word3 db 'Cherry', 0x0a
    word3Len equ $ - word3

section .text
    global _start

_start:
    mov rax, 1
    mov rdi, 1
    mov rsi, word1
    mov rdx, word1Len
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, word2
    mov rdx, word2Len
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, word3
    mov rdx, word3Len
    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