Perroquet (répète ce qu'on lui écrit, avec ajustement de la longueur réelle de l'entrée)
Le but est simple :
le programme demande d'entrer un mot (ou une phrase), l'utilisateur écrit alors un mot ou une chaîne de caractères puis le programme la lui répète (affiche) comme un perroquet.
Aussi 'simple' qu'un 'read PHRASE' puis un 'echo $PHRASE' en shell ou BASH...
Sauf que ça ne l'est pas du tout en assembleur !
Il faut gérer la longueur réelle de l'entrée pour pouvoir la renvoyer en entier.
Code du programme perroquet.asm
section .data
prompt_message db 'Entrez un mot: ', 0
prompt_len equ $-prompt_message
newline db 10 ; Caractère de saut de ligne
section .bss
input_buffer resb 100 ; Taille de l'espace réservé
input_length resq 1 ; Variable pour stocker la longueur réelle de l'entrée
section .text
global _start
_start:
; Affichage du message d'invite
mov rax, 4
mov rdi, 1
mov rsi, prompt_message
mov rdx, prompt_len
syscall
; Lecture de l'entrée utilisateur
mov rax, 3
mov rdi, 0
mov rsi, input_buffer
mov rdx, 100 ; Augmentation de la taille lue
syscall
; Stocker la longueur réelle lue dans rax, et soustraire 1 pour enlever le newline
sub rax, 1
mov qword [input_length], rax ; Stocker la longueur réelle dans input_length
; Affichage de l'entrée utilisateur
mov rax, 4
mov rdi, 1
mov rsi, input_buffer
mov rdx, qword [input_length] ; Utiliser la longueur réelle
syscall
; Affichage d'un saut de ligne
mov rax, 4
mov rdi, 1
mov rsi, newline
mov rdx, 1
syscall
; Sortie du programme
mov rax, 1 ; exit syscall number
xor rdi, rdi
syscall
Assembler
nasm -f elf64 perroquet.asm -o perroquet.o
Linker
ld perroquet.o -o perroquet
Lancer le programme
./perroquet
↑ Haut de page