Professional Documents
Culture Documents
Mcatronique
Introduction :
La langue Assembleur est un langage de programmation de bas-niveau. Programme en langage Assembleur est gal une srie dinstructions crite en langage assembleur. Une instruction en langage assembleur est une mnmonique suivie dun/deux oprandes (donnes manipuler). Une mnmonique est une commande la CPU lui montrant ce que doit faire avec les oprandes. Au cours de ce projet, on va exploiter le langage assembleur 8086 afin de dcrire le fonctionnement dun distributeur de boissons. Pour pouvoir bien programmer en assembleur, il faut connatre larchitecture interne du micro-processeur. Architecture interne du microprocesseur Intel 8086 :
Assembleur
Page 1
ENISO
Mcatronique
Objectif :
Faire un programme en langage assembleur qui permet de : Exploiter un distributeur des boissons Distinguer les diffrents modes dutilisation
Assembleur
Page 2
ENISO
- Table de vrit :
Mcatronique
Assembleur
Page 3
ENISO
Mcatronique
Assembleur
Page 4
ENISO
- Algorithme :
Mcatronique
Assembleur
Page 5
ENISO
Mcatronique
Assembleur
Page 6
ENISO
Mcatronique
Assembleur
Page 7
ENISO
Mcatronique
Assembleur
Page 8
ENISO
Mcatronique
Instructions LEA
Oprandes
Description
Chargez l'Adresse Efficace. Algorithme:
-REG, mmoire
MOV
-REG, mmoire -mmoire, REG -REG, REG -mmoire, immdiate -REG, immdiate -SREG, mmoire -mmoire, SREG -REG, SREG -SREG, REG
INT
-multiplet immdiat
o o o
flags register CS IP
XOR
-REG, memoire -memoire, REG -REG, REG -memoire, immediate -REG, immediate
La logique XOR (OU Exclusif) entre tous les bits de deux oprandes. Le rsultat est stock dans le premier oprande. Ces rgles s'appliquent comme suit: 1 XOR 1 = 0 1 XOR 0 = 1 0 XOR 1 = 1 0 XOR 0 = 0
Assembleur
Page 9
ENISO
Mcatronique
LOOP
-Label
INC
-REG -mmoire
Incrmentation. Algorithme: oprande = oprande + 1 Comparaison. Algorithme: Oprande 1 oprande 2 Le rsultat n'est pas stock n'importe o, les drapeaux sont mis (DE, SF, ZF, AF, PF, CF) ct du rsultat. Un saut court si en premier l'oprande est au-dessous de deuxime oprande (comme ensemble par linstruction CMP). Non sign. Algorithme: if CF = 1 then jump Saut inconditionnel. Les transferts contrlent une autre partie du programme. L'adresse de 4 octet peut tre introduite dans cette forme: 1234h:5678h, en premier la valeur est un segment,la deuxime valeur est une compensation. Algorithme:
always jump
CMP
-REG, mmoire -mmoire, REG -REG, REG -mmoire, immdiate -REG, immdiate
JB
-Label
JMP
Assembleur
Page 10
ENISO
Mcatronique
Excution du programme :
On fait la compilation sur un logiciel appel emulteur . Cest un logiciel trs performant qui simplifie la programmation en language Asembleur et nous aide mieux comprendre larchtecture interne dun micro processeur 8086. Pour faire lexecution du programmon clique sur la flche verte suivante : On aura donc les fenetres suivates :
Assembleur
Page 11
ENISO
On clique sur le bouton suivant :
Mcatronique
Une nouvelle fenetre apparait alors qui affiche le resultat du programme : Suivant le choix dutilisateur on aura plusieurs resultats :
Assembleur
Page 12
ENISO
Mcatronique
Assembleur
Page 13
ENISO
Mcatronique
Assembleur
Page 14
ENISO
Mcatronique
Conclusion :
Ce travail nous a donne loccasion de mieux comprendre la procdure de programmation en assembleur ainsi que lexemple de distribution des boites quon a ralis est considrer comme un exemple important pour arriver enfin crer un programme complet.
Assembleur
Page 15