Vous êtes sur la page 1sur 12

Rapport du projet module microprocesseurs et assembleur

Problème de commande de feux automobiles


Réalisé par BOURAOUI YASMINE

Objectif :

Ecrire un programme en langage assembleur permettant d’afficher l’état des


lumières V pour les veilleuses, C pour les feux de croisement, R pour les feux
de route et A pour les feux antibrouillard d’une automobile.

Description :

LE MICRO-PROCESSEUR

Le microprocesseur est la pièce principale d’un ordinateur. C’est un processeur


(CPU : Central Processing Unit) miniaturisé qui tient dans un seul circuit intégré.
Il gère l’exécution des instructions de l’ordinateur.

Un microprocesseur se caractérise par différentes fonctions. La première est le


jeu d'instructions qu'il est capable d'exécuter, pouvant aller de dizaines à des
milliers d'instructions différentes. La deuxième est la complexité de son
architecture qui se mesure par le nombre de transistors présents : plus ce
nombre est élevé, plus la complexité des tâches à traiter peut augmenter. La
troisième est la vitesse de son horloge qui dicte le rythme de travail. Enfin, le
microprocesseur se caractérise par le nombre de bits qu'il peut traiter (4 à ses
débuts, 128 en 2011). À sa création, il était capable d'effectuer un peu moins
d'un million d'instructions par seconde. Aujourd'hui, il en traite plus de 10
milliards.

CARACTERISTIQUES DU MICRO-PROCESSEUR

Un microprocesseur est défini par :

Des caractéristiques physiques :

▪ type de connexion
▪ nombre de fils de communication
▪ capacité de mémoire cache interne
▪ sa forme
Des caractéristiques électriques :

▪ sa tension de fonctionnement (2, 3, 4, 5.. Volts)


▪ sa puissance consommée
▪ sa vitesse de fonctionnement exprimée en mégahertz.

Des caractéristiques logiques :

▪ son architecture RISC (Reduced Instruction Set Calculator) : avec une


fréquence assez élevée, ou son architecture CISC (Complete Instruction
Set Calculator) : avec un jeu d'instruction le plus complet possible
▪ son jeu d'instructions : le MIPS (million d'instructions par seconde

Le microprocesseur Intel 8086


Développé en 1978 par Intel, le microprocesseur 8086 est un processeur CISC
16 bits. Il s’agit du premier microprocesseur de la famille des « x86 »
comprenant les célèbres 80386 et 80486.

Ses caractéristiques principales sont les suivantes :

✓ Bus de données d’une largeur de 16 bits.


✓ Bus d’adresses de 20 bits, ce qui permet d’adresser un total de 1
mégaoctet de mémoire.
✓ 14 registres de 16 bits dont un registre d’état contenant des
indicateurs binaires.
La mémoire est segmentée en 16 blocs de 64 Ko et une adresse sur 20 bits est
obtenue en combinant deux parties :

▪ Le registre CS permet de stocker les 4 bits de poids fort donnant le


numéro de segment de mémoire ;
▪ Le registre IP fournit les 16 bits de poids faible donnant l’adresse à
l’intérieur du segment de mémoire spécifié par CS.
L’adresse mémoire est retrouvée selon la formule :

adresse = (16 x CS) + IP.


Le 8086 autorise un mode de fonctionnement en pas à pas, ainsi que
l’utilisation d’opérations spécifiques appelées interruptions permettant au
8086 de « dialoguer » avec les autres périphériques de l’ordinateur.

Les registres du 8086 se décomposent en 4 grandes familles :

✓ 4 registres de données, se décomposant chacun en deux parties : une partie


« haute » et une partie « basse » de 8 bits chacune, ce qui permet au
microprocesseur de manipuler des données sur 8 ou 16 bits :

-AX (décomposable en AH et AL) sert d’accumulateur et est principalement


utilisé lors d’opérations arithmétiques et logiques .
-BX est la plupart du temps utilisé comme opérande dans les calculs.
-DX tout comme AX, est utilisé pour les calculs arithmétiques.
-CX est utilisé comme compteur dans les structures et notamment dans la
division et la multiplication. Il intervient également dans les opérations
d’entrées/sorties.

✓ registres de segmentation :

-CS (segment de code) permet de déterminer les


adresses sur 20 bits ;
-DS (segment de données) ;
-SS (segment de pile) ;
-ES (segment supplémentaire).

✓ registres pointeurs ou d’index :

-SP (pointeur de pile) pointe sur le sommet de la pile


de données ;
-BP (pointeur de base) pointe sur la base de la pile de
données ;
-SI (index de source) ;
-DI (index de destination).

✓ pointeur d’instruction : IP stocke l’adresse de la prochaine instruction à


exécuter par le microprocesseur.

registre spécial contenant 9 indicateurs binaires nommés « flags »


Plusieurs versions du 8086 existent, avec différents types de boitier et plusieurs
fréquences maximales supportées
Les boitiers peuvent être en céramique ou en plastique. Le suffixe du 8086
indique la fréquence maximale : 5 MHz pour le 8086, 8 MHz pour le 8086-2,
et 10 MHz pour le 8086-1

Une version céramique D8086 Une version plastique P8086.

Cahier de charge
Le système à développer doit permettre d’afficher l’état des lumières
V les veilleuses
C les feux de croisement,
R les feux de route
A désigne les feux antibrouillard

Si une lumière est allumée elle prend la valeur 1 sinon elle prend la valeur. Ces
variables de sortie sont en fonctions des variables d’entrés respectivement Cv,
Cc, Cr, Ca
La Table de vérité liant V ,C ,R, A à Cv, Cc , Cr, Ca
V C R A Cv Cc Cr Ca
0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 1
0 0 1 0 1 0 1 0
0 0 1 1 1 0 0 1
0 1 0 0 1 1 0 0
0 1 0 1 1 1 0 0
0 1 1 0 1 1 0 0
0 1 1 1 1 1 0 0
1 0 0 0 1 0 0 0
1 0 0 1 1 0 0 1
1 0 1 0 1 0 1 0
1 0 1 1 1 0 0 1
1 1 0 0 1 1 0 0
1 1 0 1 1 1 0 0
1 1 1 0 1 1 0 0
1 1 1 1 1 1 0 0

Les tableaux de carnaux et les équations de sorties

R –A 0-0 0-1 1-1 1-0 R –A 0-0 0-1 1-1 1-0


V-C V-C
0-0 0 1 1 1 0-0 0 0 0 0
0-1 1 1 1 1 0-1 1 1 1 1
1-1 1 1 1 1 1-1 1 1 1 1
1-0 1 1 1 1 1-0 0 0 0 1

Cv=C+V+A+R Cc=C

R –A 0-0 0-1 1-1 1-0 R –A 0-0 0-1 1-1 1-0


V-C V-C
0-0 0 0 0 1 0-0 0 1 1 0
0-1 0 0 0 0 0-1 0 0 0 0
1-1 0 0 0 0 1-1 0 0 0 0
1-0 0 0 0 1 1-0 0 1 1 0

Cr=R and not(A) and not(C) Ca=A and not(C)


L’organigramme du programme propose

début

C=1
Donner l’état de V

V=0 ou V=1 Cc = 1
Cv = 1
A=1
Ca = 0
Cr = 0

Donner l’état de C
Cc = 0
Cv = 1
Ca = 1 R=1
C=0 ou C=1 Cr = 0

Donner l’état de A Cc = 0
Cv = 1
Ca = 0
Cr = 1 V=1
A=0 ou A=1

Cc = 0
Donner l’état de R Cv = 1
Ca = 0 Cc = 0
Cv = 0
Cr = 0
Ca = 0
Cr = 0
R=0 ou R=1
L’environnement de travail
C’est un logiciel qui simplifie la programmation en langage assembleur et nous
aide à mieux comprendre l’architecture interne du micro-processeur 8086.

Le code source en assembleur du programme


Les tests du mon programme
Lors du l’exécution

Quelques tests
Lorsque toutes les entrées sont à 0 toutes les sorties égales à 0
Lorsque toutes les entrées à 1 seule les sortie Cc et V sont activées car puisque C est
prioritaire et V s’allume dés qu’une autre lampe est active

A est plus prioritaire que R

Vous aimerez peut-être aussi