Informatique Industrielle : TD 1 MICROPROCESSEUR 8086
Télécharger PDFObjectifs du module 8086 en assembleur
Comprendre le jeu d’instruction du processeur 8086
Ce module vise à se familiariser avec les bases du langage assembleur pour le processeur 8086, notamment ses registres, sa mémoire et ses instructions fondamentales.
Étudier les instructions de saut et de boucle
Les instructions de saut (JMP, JZ, JNZ, etc.) et les boucles (LOOP, CMP, etc.) sont essentielles pour contrôler le flux d’exécution d’un programme. Elles permettent de répéter des opérations ou de modifier dynamiquement le parcours du code.
Maîtriser les appels aux interruptions du DOS (interruption 21)
L’interruption 21 (ou INT 21h) est une fonctionnalité clé du DOS pour interagir avec le système, comme afficher du texte, lire des entrées utilisateur ou gérer la mémoire.
Exercices pratiques
Exercice 1 : Afficher un caractère «*» à l’écran
Écrire un organigramme puis un programme assembleur qui affiche le caractère «*» une seule fois sur l’écran.
Exercice 2 : Afficher une ligne de 15 caractères «*»
Développer un organigramme et un programme assembleur pour afficher une ligne composée de 15 caractères «*».
Exercice 3 : Afficher une ligne de N caractères «*» (N donné par l’utilisateur)
Concevoir un organigramme et un programme assembleur qui permet d’afficher une ligne de N caractères «*», où N est une valeur saisie par l’utilisateur.
Exercice 4 : Afficher un motif personnalisé (P lignes de N caractères C)
Écrire un organigramme puis un programme assembleur qui demande à l’utilisateur de saisir deux valeurs (N et P) et un caractère (C), puis affiche P lignes de N caractères C.
Exercice 5 : Afficher un motif en décroissant (modification de l’exercice 4)
Adapter le programme de l’exercice 4 pour afficher un motif dont le nombre de caractères diminue à chaque ligne, comme dans l’exemple suivant :
Exemple : N=5, P=3, C=#
# # # # #
# # # #
# # #
Exercice 6 : Afficher le contenu d’une zone mémoire [DS:0000 - DS:0100]
Créer un organigramme et un programme assembleur qui lit et affiche le contenu des octets situés en mémoire entre les adresses DS:0000 et DS:0100.
FAQ sur les exercices en assembleur 8086
1. Comment initialiser les registres avant d’afficher un caractère ?
Utilisez les instructions MOV AH, 02h (pour afficher un caractère) et MOV DL, '*' (pour charger le caractère dans le registre DL), puis appelez l’interruption INT 21h.
2. Pourquoi utiliser une boucle pour afficher plusieurs caractères ?
Les boucles permettent de réduire le code en évitant de répéter manuellement chaque instruction d’affichage. Par exemple, une boucle LOOP ou CMP/JNZ est efficace pour afficher N caractères.
3. Comment gérer la mémoire dans l’exercice 6 ?
Pour lire le contenu de la mémoire, utilisez MOV SI, 0000h (pour pointer le début de la zone) et MOV AL, [SI] (pour charger un octet). Incrémentez SI avec INC SI pour parcourir la zone.