Informatique Industrielle : TP2 : Instructions et modes d’adressage en 8086...
Télécharger PDFObtenir le pack complet des cours, TDs, TPs et projets sur Informatique Industrielle : Microprocesseur & Microcontrôleur!
Vous souhaitez maîtriser les microprocesseurs et Microcontrôleurs ? Ne cherchez plus, nous avons le pack parfait pour vous.
Accédez à une collection complète des supports de cours, des travaux dirigés (TD) corrigés, des travaux pratiques (TP) et des projets.
Obtenir le pack maintenantAnnée Universitaire : 2019 / 2020
Spécialité : M1 Instrumentation Département : électronique et télécommunications
Module : TP Systèmes à Microprocesseur
Elearn : TP Microprocesseur et Microcontrôleurs – N.NASRI
Chargé du TP : ... TP2 : Instructions et modes d’adressage en 8086... Nom / Prénom : 1) Groupe : 2) Note importante : Comme toute langue humaine, les langages de programmation ont : un lexique (les mots) qui est équivalent aux instructions et une grammaire (syntaxe) qui est équivalente aux modes d’adressage. Objectifs : Se familiariser avec le jeu d’instructions. S’entrainer sur les modes d’adressage. Matériel utilisé : Un PC. Logiciel Emul8086. I/ Préparation théorique : A/ Rappel : Le 8086 est un microprocesseur 16 bits, alors il n’est pas adéquat d’avoir des adresses mémoires de 20 bits [Ou 5 digits en représentation hexadécimale] (On parle de ceci, car la technologie a produit des bus d’adresses sur 20 bits). La solution adoptée est : - Diviser la mémoire en pages (appelés segments). - Représenter alors une adresse relative (offset) sur 16 bits [ou 4 digits en représentation hexadécimale] parcourant un segment. - Donc au lieu de représenter une adresse par 20350, on utilise plutôt 2000 : 350 ou : 2000 est le segment et 350 est l’offset. Analogie à la numération utilisée dans les hôtels. Lors de la réservation de la chambre 213 .. On comprend directement qu’il s’agit de la chambre 13 de l’étage 2. (alors l’étage 2 représente le segment et 13 l’offset. Alors on peur écrire 2 : 13) B / Donner les adresses absolues des adresses suivantes : Adresse absolue 3500 : AB00 0022 : FFFF 2000 : 0350 4055 : 3192 C / Indiquer les instructions correctes et corriger les autres : instruction Correction MOV AX, 9 MOV 9, AX MOV AX, BX MOV AX, [BX] MOV AX, [BX+2] PUSH AL MOV AX, N1 MOV AX, [1] ROL AX, 2 CMP [1000], 2 MOV AX, TAU MOV AX, BL II / Opérations en 8086 : 1 – Saisir le code assembleur suivant : MOV AX, 05h MOV BX, 15h ADD AX,BX Année Universitaire : 2019 / 2020
Spécialité : M1 Instrumentation Département : électronique et télécommunications
Module : TP Systèmes à Microprocesseur
Elearn : TP Microprocesseur et Microcontrôleurs – N.NASRI
Chargé du TP : ... 2 - Emuler le code en cliquant sur emulate se trouvant sur la barre de taches principale. 3 - Exécuter le code ainsi écrit en cliquant sur run. 4– Que remarquez-vous sur le contenu des différents registres ? .........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
......................................................................................................................... 5- Compléter le tableau suivant : Opération réalisée Registres modifiés résultat Registre du résultat 6– Saisir, maintenant, le code assembleur suivant : 7- Compléter le tableau suivant : Opération réalisée Registres modifiés résultat Registre du résultat 8– Saisir, maintenant, le code assembleur suivant : 9– Que remarquez-vous sur le contenu des différents registres ? .........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
......................................................................................................................... 10– Saisir, maintenant, le code assembleur suivant : 11- Compléter le tableau suivant : Instruction Modification apportée explication MOV AX, 195h MOV BX, 911h ADD AX, BX MOV AX, 195h ADD AL, 02 MOV AX, 1002h MOV BH, 02h SUB AX, BX SUB AH? 03h MUL BH Année Universitaire : 2019 / 2020
Spécialité : M1 Instrumentation Département : électronique et télécommunications
Module : TP Systèmes à Microprocesseur
Elearn : TP Microprocesseur et Microcontrôleurs – N.NASRI
Chargé du TP : ... 12– Saisir, maintenant, le code assembleur suivant : 13– Que représente « nombre » ? .........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
......................................................................................................................... 14 - Commenter le résultat. .........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
......................................................................................................................... 15 – Proposer un code qui permet de faire la division en utilisant deux registres, ensuite en utilisant un registre et une variable. (Inspirer vous des questions 10 et 12) division ( Deux registres) division ( Un registre et une variable) 16 – Dans l’onglet “help” de l’émulateur, : - Ouvrir Documentation and tutorials. - Choisir 8086 Instruction Set - Une liste de toute les instructions du 8086 s’affiche, avec des exemples et des remarques. - Surfer et jeter un coup d’ Œil sur les instructions. - Observer par exemple les instructions suivantes : CMP, DEC, DIV, MUL, AND, TEST ... nombre dw ? MOV AX, 04h MOV nombre, 05h MUL nombre Année Universitaire : 2019 / 2020
Spécialité : M1 Instrumentation Département : électronique et télécommunications
Module : TP Systèmes à Microprocesseur
Elearn : TP Microprocesseur et Microcontrôleurs – N.NASRI
Chargé du TP : ... III / Modes d’adressage : Les modes d’adressage représentent la syntaxe qui permet d’écrire correctement des instructions en assembleur 8086. ils sont principalement : l’adressage immédiat, l’adressage registre, adressage direct et adressage indirect. Exemple : MOV AL, 10h (adressage immédiat) MOV AX, BX (adressage registre) MOV BL, [1200h] (adressage direct) MOV [SI], 10h (adressage indirect) MOV [1200H], 12h (adressage indirect) Travail Demandé : Partie A : 1. Soit le code Assembleur suivant :
2. Saisir puis exécuter en mode pas à pas (Single step) et remplir le tableau suivant. Instruction Mode D’adressage Résultat MOV [100h], 10h MOV [101h], 11h MOV [102h], 12h MOV [103h], 13h MOV [104h], 14h MOV [107h], 17h MOV AX, 100h MOV BX, AX MOV CX, BX MOV DL, CH MOV DH, [100h] MOV CX, [102h] MOV BX, 103h MOV BP, 103h MOV DL, [BX] MOV DL, [BP] MOV DH, [BX]+4 MOV DH, [BP]+4 MOV SI, 4 HLT Année Universitaire : 2019 / 2020
Spécialité : M1 Instrumentation Département : électronique et télécommunications
Module : TP Systèmes à Microprocesseur
Elearn : TP Microprocesseur et Microcontrôleurs – N.NASRI
Chargé du TP : ... Partie B : 1 – Ouvrir l’émulateur Emu8086. 2 – Ecrire le programme ci-contre. 3 – Compiler puis exécuter par RUN. 4 – Que fait ce programme ? .........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
......................................................................................................................... Conclusion :
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
......................................................................................................................... Partie BC: - Ecrire un code qui permet de : 1. Charger AX par la valeur 55h. 2. Charger BX par la valeur 88H. 3. Transférer le contenu de AX vers DX. 4. Charger CX par le contenu de BX. 5. Réaliser l’addition de BL et AL 6. Réaliser la multiplication de BL et AL.
MOV DL, 30h
MOV AH, 02h encore: MOV AH, 02h
INT 21h
INC DL
CMP DL, 3Ah
JNE encore
MOV AH, 4ch
INT 21h Année Universitaire : 2019 / 2020
Spécialité : M1 Instrumentation Département : électronique et télécommunications
Module : TP Systèmes à Microprocesseur
Elearn : TP Microprocesseur et Microcontrôleurs – N.NASRI
Chargé du TP : ...
Rappel sur les modes d’adressage Les modes d’adressage : Pour bien parler la langue française, on est appelé à connaitre un minimum de son lexique (qui représente l’ensemble des mots de cette langue) et un minimum de sa syntaxe (qui étudie la façon dont les mots se combinent pour former des phrases). En Assembleur 8086, le lexique est représenté par l’ensemble des instructions du 8086, par ailleurs, la syntaxe est représentée par les modes d’adressage. Dans ce qui suit, sont définit les modes d’adressage du 8086: - L’adressage immédiat : Reg ------------ constante Charger le registre par une constante (valeur immédiate). Exemple : Mov AH,12 (donnée de 8 bits) Mov BX,FFFF (donnée de 16 bits) - L’adressage direct : Reg ------------ opérande Charger le registre par un opérande (variable déclarée). Exemple : Mov CH, surface Mov DX, matricule - L’adressage registre : L’opération se fait entre deux registres. Exemple : Mov AX,BX (Copier le contenu de BX vers AX)
- L’adressage base : Reg ------------ [BX] basé sur DS Charger le registre par le contenu de la mémoire pointée par DS :[BX] Exemple : Mov BX, 10C5h (Charger BX par 10C5) Mov AX, [BX] (Charger AX par le contenu de l’adresse
DS :10C5) Ou : Reg ------------ [BP] basé sur SS Ce mode d’adressage est identique au premier cas sauf qu’on pointe sur SS :[BP] pour manipuler la pile. La pile est repérée par SS. Exemple : Mov BP, 07C4 (Charger BP par 07C4) Mov AX, [BP] (Charger AX par le contenu de l’adresse
SS :07C4) - L’adressage indexé : Reg ------------ [SI] ou [DI] indexé sur DS Ce mode d’adressage est principalement utilisé pour les chaines de caractères ou pour les éléments d’un tableau. Exemple : Mov SI,0
(Charger SI par 0) Mov AX,[SI] (Charger AX par le contenu de l’adresse DS :0) Exemple : Mov DI, 6
(Charger DI par 0)
Mov [DI],AH (L’adresse DS :6 reçoit la valeur AH)
