Afficher deux chaînes
Fait partie de la section Fondamentaux du Journey Assembly de Coddy — leçon 40 sur 45.
Vous savez déjà comment afficher une chaîne de caractères. Mais que se passe-t-il si vous voulez afficher deux chaînes distinctes ? Par exemple, "Hello " et ensuite "World!" ?
Il suffit d'appeler l'appel système write deux fois — une fois pour chaque chaîne.
Comment ça fonctionne :
; Premier affichage
mov rax, 1
mov rdi, 1
mov rsi, firstMsg
mov rdx, firstLen
syscall
; Second affichage
mov rax, 1
mov rdi, 1
mov rsi, secondMsg
mov rdx, secondLen
syscallExemple :
section .data
first db 'Hello ', 0x0a
firstLen equ $-first
second db 'World!', 0x0a
secondLen equ $-second
section .text
global _start
_start:
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
mov rax, 60
mov rdi, 0
syscallSortie :
Hello World!
Pourquoi afficher deux chaînes au lieu d'une ?
| Raison | Exemple |
|---|---|
| Réutilisabilité | Afficher la même salutation avec des noms différents |
| Flexibilité | Afficher différents messages en fonction de conditions |
| Organisation | Garder différents messages séparés en mémoire |
Vous pouvez afficher autant de chaînes de caractères que vous le souhaitez :
Il suffit de répéter l'appel système write pour chaque chaîne.
Défi
On vous donne deux chaînes de caractères : partOne avec la valeur 'Good' et partTwo avec la valeur 'bye'. Les deux ont déjà un saut de ligne à la fin.
Écrivez le code pour afficher partOne puis partTwo afin que la sortie affiche :
Good
bye
La section data et l'appel système exit sont déjà fournis. Vous n'avez qu'à écrire les deux appels système write.
Essayez vous-même
section .data
partOne db 'Good', 0x0a
partOneLen equ $-partOne
partTwo db 'bye', 0x0a
partTwoLen equ $-partTwo
section .text
global _start
_start:
; À FAIRE : Afficher partOne en utilisant l'appel système write
; À FAIRE : Afficher partTwo en utilisant l'appel système write
mov rax, 60
mov rdi, 0
syscall
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
1La Machine
Qu'est-ce qu'un CPULa mémoireRegistres vs MémoireFonctionnement des instructionsLe modèle à deux fichiersL'architecture x86-64