You are on page 1of 15

ENISO

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

Principe et cahier de charge :


Le principe de ce programme consiste utiliser un interface de communication a laide dun programme dxcution emu8086 En exploitant 3 boutons qui commandent 3 lectrovannes branches 3 cuves contenant des liquides (eau, cassis, menthe). Le distributeur permet d'obtenir 3 boissons : - E : eau - C : cassis - M : menthe Si l'on veut un mlange, on appuie sur 2 boutons simultanment (e et c) ou (e et m) et on introduit une pice (p). Tous les autres mlanges sont interdits. L'eau est gratuite. Pour toute fausse manuvre (mlange interdit ou eau seule) la pice est restitue. - P: pice restitue En se basant sur ces donnes, on va exprimer les sorties E, C, M et P en fonction des entres e, c, m et p.

Assembleur

Page 2

ENISO
- Table de vrit :

Mcatronique

- Simplification par tableaux de karnaugh :

Assembleur

Page 3

ENISO

Mcatronique

Assembleur

Page 4

ENISO
- Algorithme :

Mcatronique

Assembleur

Page 5

ENISO

Mcatronique

Le programme est prsent par le document suivant :

Assembleur

Page 6

ENISO

Mcatronique

Assembleur

Page 7

ENISO

Mcatronique

Assembleur

Page 8

ENISO

Mcatronique

Explication des diffrentes instructions:


Le tableau suivant rcapitule les diffrentes instructions utilises dans notre programme Assembleur :

Instructions LEA

Oprandes

Description
Chargez l'Adresse Efficace. Algorithme:

-REG, mmoire

REG = adresse de mmoire (offset)

MOV

-REG, mmoire -mmoire, REG -REG, REG -mmoire, immdiate -REG, immdiate -SREG, mmoire -mmoire, SREG -REG, SREG -SREG, REG

Copiez loprande 2 dans oprande 1. Algorithme: Oprande 1 = oprande 2

Interruption compte par multiplet immdiat (0..255). Algorithme: Push to stack:

INT

-multiplet immdiat

o o o

flags register CS IP

IF = 0 Transfer control to interrupt procedure

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

Diminuer CX, saute pour tiqueter si CX ne mettent pas zro. . Algorithme:

LOOP

-Label

CX = CX - 1 if CX <> 0 then jump else no jump, continue

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

-label 4-octet adresse

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

You might also like