0% ont trouvé ce document utile (0 vote)
59 vues6 pages

TP Assembleur

Ce TP vise à initier les étudiants à l'assembleur sous Linux dans un environnement Windows, en leur apprenant à installer un prompt Linux, configurer un environnement de développement et écrire des programmes simples. Les étudiants réaliseront des exercices pratiques, allant de l'affichage d'un message à des opérations mathématiques, tout en explorant des concepts tels que les instructions de base et les interactions utilisateur. Le TP encourage également l'autonomie dans la recherche de solutions pour des exercices plus complexes.

Transféré par

angeabobo05
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
59 vues6 pages

TP Assembleur

Ce TP vise à initier les étudiants à l'assembleur sous Linux dans un environnement Windows, en leur apprenant à installer un prompt Linux, configurer un environnement de développement et écrire des programmes simples. Les étudiants réaliseront des exercices pratiques, allant de l'affichage d'un message à des opérations mathématiques, tout en explorant des concepts tels que les instructions de base et les interactions utilisateur. Le TP encourage également l'autonomie dans la recherche de solutions pour des exercices plus complexes.

Transféré par

angeabobo05
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP : Initiation à l'assembleur sous Linux dans un

environnement Windows
Objectifs :

1.​ Installer un prompt Linux sous Windows.


2.​ Mettre en place l’environnement pour écrire et exécuter du code
assembleur.
3.​ Écrire, compiler et exécuter un programme simple en assembleur.
4.​ Acquérir les notions de base tout en développant des compétences de
recherche pour aller plus loin.

Partie 1 : Installer un prompt Linux sous Windows

Étape 1 : Activer le sous-système Windows pour Linux (WSL)

1.​ Ouvre PowerShell en mode administrateur.


2.​ Tape la commande suivante pour activer le WSL : “wsl --install”
3.​ Une fois l’installation terminée, redémarre ton ordinateur si nécessaire.

Étape 2 : Configurer Ubuntu

1.​ Ouvre Ubuntu via le menu Démarrer.


2.​ Lors de la première exécution :
○​ Configure ton compte utilisateur en définissant un nom
d’utilisateur et un mot de passe.
3.​ Mets à jour les paquets avec les commandes suivantes : “sudo apt
update && sudo apt upgrade -y”

Partie 2 : Mettre en place l'environnement pour l'assembleur

Étape 1 : Installer les outils nécessaires

Exécute les commandes suivantes dans le terminal Ubuntu :

Installer l'assembleur NASM :​



sudo apt install nasm
1.​ Installer un linker pour générer des exécutables :​

sudo apt install gcc
2.​ Vérifie que les outils sont installés correctement :​

nasm -v # Affiche la version de NASM

gcc --version # Affiche la version de GCC

Partie 3 : Exercice pratique - Programmation en assembleur

Objectif général

Les étudiants écriront plusieurs programmes en assembleur, allant du simple


"Hello, World!" à un programme effectuant des opérations mathématiques
avec des variables. Ils seront également encouragés à explorer des instructions
supplémentaires et à intégrer des interactions utilisateur.

Étape 1 : Premier programme - Hello, World!

Objectif : S'assurer que tout fonctionne et se familiariser avec la structure d'un


programme assembleur.

1.​ Suivre les étapes précédentes pour écrire et exécuter le programme


"Hello, World!" en assembleur.

Code récapitulatif :

section .data

msg db "Hello, World!", 0xA

len equ $ - msg

section .text

global _start
_start:

mov rax, 1 ; Code de write

mov rdi, 1 ; File descriptor (stdout)

mov rsi, msg ; Adresse du message

mov rdx, len ; Longueur du message

syscall

mov rax, 60 ; Code de exit

xor rdi, rdi ; Code de retour (0 = succès)

syscall

Étape 2 : Manipulation des instructions de base

Objectif : Introduire les instructions fondamentales comme mov, add, sub, mul,
div, et leur permettre de manipuler des données simples.

1.​
Nouvel exercice : Additionner deux nombres​
Demande aux étudiants d’écrire un programme qui effectue les étapes
suivantes :
○​ Stocker deux nombres dans des variables.
○​ Effectuer leur addition.
○​ Afficher le résultat dans le terminal.

Consignes détaillées :

1.​ Crée un fichier nommé addition.asm.

Écris le programme suivant en assembleur :​


section .data
num1 dq 10 ; Premier nombre

num2 dq 20 ; Deuxième nombre

result dq 0 ; Pour stocker le résultat

msg db "Result: ", 0xA ; Message à afficher

section .text

global _start

_start:

mov rax, [num1] ; Charger num1 dans rax

add rax, [num2] ; Ajouter num2 à rax

mov [result], rax ; Stocker le résultat

; Affichage du résultat (écriture simplifiée pour l'exemple)

mov rax, 1

mov rdi, 1

mov rsi, msg

mov rdx, 9

syscall

; Terminer

mov rax, 60
xor rdi, rdi

syscall

2.​ Compile et exécute le programme en suivant les mêmes étapes qu’avant


(NASM + ld).

Explication des concepts abordés :

●​ mov: Charger une valeur ou un contenu de mémoire dans un registre.


●​ add: Additionner deux valeurs (registre ou mémoire).
●​ Gestion des sections .data (données) et .text (instructions).

Étape 3 : Introduire les interactions utilisateur

Objectif : Ajouter un élément interactif pour demander à l'utilisateur de saisir


deux nombres et afficher leur somme.

1.​ Consignes pour l’exercice :


○​ Écris un programme qui :
■​ Demande à l'utilisateur de saisir deux nombres.
■​ Lit les nombres entrés depuis le clavier.
■​ Effectue leur addition.
■​ Affiche le résultat.
2.​ Points de recherche encouragés :
○​ Utiliser les appels système pour lire une entrée utilisateur (syscall
avec read).
○​ Convertir une entrée en chaîne de caractères en entier (ASCII à
binaire).
○​ Afficher un résultat dans le terminal.

Étape 4 : Approfondir avec des consignes supplémentaires

1.​
Exercice facultatif - Opérations mathématiques complexes​
Demande aux étudiants de :
○​ Implémenter les opérations de base : addition, soustraction,
multiplication, division.
○​ Permettre à l'utilisateur de choisir l'opération à exécuter via une
entrée clavier.
2.​ Exercice facultatif - Boucles et conditions
○​ Créer un programme qui affiche les nombres de 1 à 10 en utilisant
une boucle.
○​ Ajouter une condition pour afficher uniquement les nombres
pairs.

Guides de recherche pour les étudiants :

●​ Instructions de boucle (loop, jmp).


●​ Comparaison de valeurs (cmp, jne, je).

Partie 4 : Compilation, exécution et analyse

1.​ Compile et exécute chaque programme.


2.​ Analyse les résultats dans le terminal.
3.​ En cas d'erreur, utilise les messages du compilateur ou du linker pour
corriger le code.

Conclusion

Ce TP permet aux étudiants de :

1.​ S’initier à l’écriture et à l’exécution de programmes assembleur.


2.​ Manipuler les instructions de base (mov, add, etc.) et découvrir leur
fonctionnement.
3.​ Acquérir une méthode de travail progressive, tout en explorant les sujets
plus complexes par eux-mêmes.

Vous aimerez peut-être aussi