Voici un exemple simple en langage d'assemblage utilisant le GNU Assembler (GAS) pour additionner deux nombres et afficher le résultat dans la console. ```asm .section .data num1: .long 5 # Premier nombre num2: .long 7 # Deuxième nombre result: .long 0 # Emplacement pour stocker le résultat .section .text .globl _start _start: # Charger les valeurs des nombres dans les registres movl num1, %eax # Charger num1 dans le registre EAX movl num2, %ebx # Charger num2 dans le registre EBX # Effectuer l'addition addl %ebx, %eax # Ajouter EBX à EAX (EAX = EAX + EBX) # Stocker le résultat dans la variable 'result' movl %eax, result # Stocker le résultat dans 'result' # Préparer les paramètres pour l'appel système 'write' afin d'afficher le résultat movl $1, %eax # Syscall number (sys_write) movl $1, %edi # File descriptor (stdout) leal output(%rip), %rsi # Buffer à écrire movl $result_length, %edx # Taille du buffer # Appeler l'appel système 'write' syscall # Quitter le programme proprement movl $60, %eax # Syscall number (sys_exit) xorl %edi, %edi # Code de sortie (0) syscall output: .ascii "Resultat: " result_length = . - output + 10 # Taille du texte "Resultat: " + 10 pour la conversion du nombre ``` ### Explication du code : 1. **Section `.data`** : - Contient les données nécessaires, c'est-à-dire les deux nombres à additionner et une variable pour stocker le résultat. 2. **Section `.text`** : - Contient le code d'exécution du programme. - `_start` est le point d'entrée du programme. 3. **Chargement des valeurs** : - On charge `num1` dans le registre `EAX` et `num2` dans le registre `EBX`. 4. **Addition** : - On additionne le contenu des registres `EBX` et `EAX`, en stockant le résultat dans `EAX`. 5. **Stockage du résultat** : - On déplace le contenu de `EAX` (le résultat) dans la variable `result`. 6. **Affichage** : - Pour afficher le résultat, on utilise l'appel système `write` pour écrire le texte "Resultat: " suivi du résultat sur la console. 7. **Sortie** : - Le programme se termine proprement en appelant `sys_exit`. Pour assembler et exécuter ce programme, utilisez les commandes suivantes dans un terminal Linux : ```bash as -o addition.o addition.s ld -o addition addition.o ./addition ``` Note : Cet exemple est simplifié et pour un programme plus complet, vous devriez implémenter la conversion de l'entier en chaîne de caractères pour qu'il s'affiche correctement après "Resultat:". --- documentation provided by: chatgpt