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 (newline) à la fin de vos chaînes. Mais que se passe-t-il si vous l'oubliez ?

Sans saut de ligne (newline) :

Le texte s'affiche, mais le curseur reste sur la même ligne. Tout affichage futur 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

Pas d'espace. Pas de newline. Tout est collé.

Avec 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 newline :

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

Common newline mistakes:

ErreurRésultat
No newline at allLe texte se superpose sur une seule ligne
Newline only at the end of last stringLes chaînes précédentes se superposent, la dernière va à la ligne suivante
Newline in the middle of a stringSauts de ligne à des endroits inattendus

La règle de sécurité :

Ajoutez toujours 0x0a à la fin de chaque chaîne de caractères que vous souhaitez voir sur sa propre ligne.

challenge icon

Défi

Vous devez afficher trois chaînes de caractères sans saut de ligne afin qu'elles apparaissent sur trois lignes séparées.

Les chaînes de caractères sont :

StringValeur
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 le 1er texte listé dans les instructions et un saut de ligne
    ; TODO: Définir word2 avec le 2e texte listé dans les instructions et un saut de ligne
    ; TODO: Définir word3 avec le 3e texte listé dans les instructions 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