Académique Documents
Professionnel Documents
Culture Documents
MICROPROCESSEUR
2017-2018
Microprocesseur - Plan
Au niveau de la mémoire:
1 Ko (en 1970) → quelques GO (230)
Une faune variée: mémoire externe(flash),
mémoire centrale(RAM), mémoire cache (de
plusieurs niveaux différents)
Au niveau de l’architecture:
Du modèle Von Neumann → architectures plus
parallèles (pipeline?, super scalaire?, multi cœur?)
Microprocesseur ???
Remarque:
Un circuit intégré qui inclut une UCT, de la mémoire et des
périphériques est un microcontrôleur.
Généralités - Structure d’un système à microprocesseur
Organisation de la mémoire centrale
Unité de Contrôle:
Elle gère toutes les opérations qui concourent à la réalisation d'une
instruction.
Généralités - Architecture d’un microprocesseur
Description matérielle d’un microprocesseur
Unité de Contrôle:
Ex: L'instruction "Lire la case d'adresse 12" est exécutée par l’UC de la manière suivante :
1.Placer 12 sur le bus d'adresse
2.Attendre la donnée de la mémoire
3.Lire la donnée du bus de données
4.Charger la valeur lue dans le registre demandé.
Registres:
Ce sont des mémoires internes. Indispensables au fonctionnement
du microprocesseur, ils permettent notamment le stockage des
opérandes, des résultats, des pointeurs d'adresse, ...
Microprocesseur - Plan
Types de mémoires
volatiles.
des programmes.
Rq: Les mémoires sont caractérisées par leur capacité : nombre total
de cases mémoire contenues dans un même boîtier.
Généralités – Schéma fonctionnel
Lorsque cette broche est active (état bas), le circuit peut être lu ou écrit.
Lorsqu’elle est inactive( état haut), le circuit est exclu du service : ses
broches de données D0 à D7 passent à l’état de haute impédance : tout
se passe comme si la mémoire était déconnectée du bus de données du
microprocesseur, d’où la possibilité de connecter plusieurs boîtiers
mémoire sur un même bus : un seul signal CS doit être actif à un
instant donné pour éviter les conflits entre les différents boîtiers.
Généralités – Connexion de plusieurs mémoires
Connexion de trois boîtiers mémoire d’une capacité de 8 Ko
chacun (13 lignes d’adresses) sur un bus d’adresse de 16 bits :
Généralités – Connexion de plusieurs mémoires
Dans un même boîtier, une case mémoire est désignée par les bits
d’adresses A0 à A12 :
Généralités – Connexion de plusieurs mémoires
Décodeur 3 vers 8:
Généralités – Décodage d’adresses
Décodeur 3 vers 8:
Le microprocesseur Intel
8086 est un microprocesseur
16 bits, apparu en 1978.
C’est le premier
microprocesseur de la
famille Intel 80x86 (8086,
80186, 80286, 80386, 80486,
Pentium, ...).
Il se présente sous la
forme d’un boîtier DIP
(Dual In-line Package) à 40
broches.
µP 8086 – Architecture interne
Représentation fonctionnelle
µP 8086 – Architecture interne (Signaux)
DEN : Data Enable, indique que des données sont en train de circuler
sur le bus A/D (équivalent de ALE pour les données).
• BHE pour la banque impaire qui contient les octets de poids fort.
µP 8086 – Architecture interne (Signaux)
Registres généraux
Registres de segments
Registres d’adressage
Registre d’état
µP 8086 – Architecture interne
Représentation interne
Fonctions:
Extraire les codes des instructions à partir de la file d'attente et les
exécutent.
Fournir les adresses des opérandes au BIU en nommant le segment
concerné et en fournissant le déplacement dans ce segment.
Recevoir et fournir les opérandes au BIU.
µP 8086 – Architecture interne
Fonctions de l’EU & BIU:
Fonctions:
Chercher les instructions à exécuter de la mémoire et les stocke
dans la file d'attente FIFO.
Calculer les adresses physiques sur 20 bits.
Réaliser le transfert des données avec la mémoire.
µP 8086 – Organisation de l’espace mémoire
Cet espace est divisé en segments. Un segment est une zone mémoire
de 64 Ko (65 536 octets) définie par son adresse de départ qui doit être
un multiple de 16.
Dans une telle adresse, les 4 bits de poids faible sont à zéro. On peut
donc représenter l’adresse d’un segment avec seulement ses 16 bits de
poids fort, les 4 bits de poids faible étant implicitement à 0.
µP 8086 – Organisation de l’espace mémoire
Une case mémoire est repérée par le 8086 au moyen de deux quantités
sur 16 bits :
• l’adresse d’un segment ;
• un déplacement ou offset (appelé aussi adresse effective)
dans ce segment.
Les segments ne sont pas nécessairement distincts les uns des autres,
ils peuvent se chevaucher ou se recouvrir complètement.
µP 8086 – Registres du µP 8086
Le registre BX:
Il est appelé registre de base. Il est utilisé aussi bien pour le calcul
que pour l'adressage. Comme AX, le registre BX est constitué de deux
registres 8 bits : BL et BH.
BX = BH : BL
µP 8086 – Registres généraux ou de calcul
Le registre CX:
C'est le registre compteur. Il est souvent employé d'une manière
implicite par certaines instructions comme compteur (instructions de
boucle, traitement des chaîne des caractères, ...).
CX = CH : CL
Le registre DX:
Appelé registre de donnée, il est utilisé implicitement par certaines
instructions pour stocker des opérandes ou des résultats.
DX = DH : DL
µP 8086 – Registres d’adressage
Registres d’index:
Les registres SI (Source Index) et DI (Destination Index).
Appelés index de source et index de destination respectivement.
Ils sont souvent utilisés dans la gestion des tableaux et des chaînes
de caractères dans la zone mémoire réservée aux données.
µP 8086 – Registres d’adressage
Exemple:
L'instruction : MOV AL,[1000h]
signifie : Charger le registre AL par le contenu de l'octet d'adresse
1000h (1000h est une adresse logique exprimée sur 16 bits).
µP 8086 – Registres de segmentation
donnée est appelé adresse physique. Elle est exprimée sur 20 bits et
c'est elle qui est effectivement mise sur le bus d'adresse pour accéder à
adresse logique sur 16 bits et par une valeur de segment inscrite dans
le registre DS.
Remarques:
Une case mémoire est complètement définie par son segment et par
La pile est une zone mémoire gérée en LIFO (Last In, First out). Elle
utilisée est :
l'état de celui-ci.
drapeau (flag).
Indicateurs d’état:
Les indicateurs d'état sont mis à jour après chaque instruction. Leur
Indicateurs de contrôle:
l'état de celui-ci.
Mode Immédiat :
Remarque:
Ce type de transfert est interdit avec les registres de segmentation (DS, CS, SS, ES).
µP 8086 – Modes d’adressage
Mode direct :
Un opérande est donné en mode direct s'il est désigné par son adresse
Exemple1:
Un opérande est donné en mode direct s'il est désigné par son adresse
Exemple2:
Mode indirect :
BX et SS pour BP.
données (registre DS), alors que BP sera employé pour accéder aux
Rq: On note un opérande fourni en adressage indirect basé par [BX] ou [BP].
µP 8086 – Modes d’adressage
Mode indirect basé :
Exemple 1:
MOV [BX],0768h
Exemple 2:
Soit : BP = F415h ; SS = 0784h ; AX = 76E4h
MOV [BP]7Ah,AL
Autre écriture : MOV [BP + 7Ah],AL
Exemple 1:
MOV [SI+1000h],142Bh
A1BA:34AB)
Résultat de l'instruction :
µP 8086 – Modes d’adressage
Mode indirect indexé :
Exemple 2:
Exemple:
MOV [BP+SI],12h
1. Instructions de transfert
2. Instructions arithmétiques
3. Instructions logiques
5. Instructions de branchement
µP 8086 – Les instructions de la famille INTEL 80x86
suivi de deux points (:). Elle est mise juste avant l'instruction à
marquer.
µP 8086 – Les instructions de la famille INTEL 80x86
Exemple :
MOV DS, AX
INT 21H
XOR AH, AH
Suite1: DIV BL
JZ TestRS
µP 8086 – Les instructions de la famille INTEL 80x86
Les sauts :
Ces sauts ont lieu après l'exécution d'une instruction de saut sans
MOV DL,41h
CALL Affich; Premier appel au sous-programme Affich
1er Retour
XOR BL,BL; instruction exécutée après le premier appel
ADD DL,05h
CALL Affich; Deuxième appel au sous-programme Affich
2ème Retour
OR AL,0Fh; instruction exécutée après le deuxième appel
.....
Affich: MOV AH,2; Début du sous-programme
INT 21H
RET; Fin du sous-programme (instruction de retour)
µP 8086 – Les instructions de la famille INTEL 80x86
Les sauts conditionnels ont lieu si une condition est vérifiée. Ils
PF, ...).
influence sur les opérandes qu'on compare. Leur seul rôle est de
L'instruction CMP:
L'instruction TEST:
Syntaxe : TEST destination,source
destination et source restent inchangés. TEST effectue un ET logique
entre les deux opérandes :destination AND source.
Les drapeaux sont positionnés en fonction du résultat de cette
opération.
Exemple: TEST BL,BL
•Si BL = 00h, le ET donnera un résultat nul. Par conséquent, ZF sera mis à 1.
•Si BL est différent de 00, le résultat du ET sera non nul, donc ZF sera mis à 0.
Donc, pour vérifier si BL est nul ou non, il suffit de tester l'état de ZF juste après
cette instruction.
µP 8086 – Les instructions de la famille INTEL 80x86
Remarques :
pour indiquer leur taille de 32 bits : EAX,EBX, ESI, EDI, EBP, ...
Les instructions ont été aussi étendus sur les opérations 32 bits.
µP 8086 – Les instructions de la famille INTEL 80x86
La pile est une zone mémoire gérée en LIFO (Last In, First Out), c'est
monnaie. La seule pièce qu'on peut retirer est la dernière pièce empilée,
toutes les données qui y existaient, ce qui se solde, dans la plupart des
Pour le 8086, les données empilées et dépilées sont toujours sur 16 bits.
µP 8086 – Accès à la pile
Empilement:
PUSH donnée
Exemple:
Exemple:
Stockage temporaire:
suivants :
Le manque de registres
Programme
Tant que (vol=0) et (incendie=0) et (ascenseur=0) faire { }
Au cas où :
Vol=1:appel de la police
Asc=1:appel de la compagnie d'ascenseurs
Feu=1:appel des pompiers
Recommencer
Inconvénient:
Types et propriétés:
application d'un état haut sur INTR (Interrupt Request) ou NMI (No
Masquable Interrupt).
** INTR est moins prioritaire que NMI et peut être masquée par
programme.
µP 8086 – Interruptions matérielles
Remarque:
L'interruption INTR peut être masquée par l'instruction CLI (CLear Interrupt
flag) qui met le drapeau IF à 0. Aucun appel sur INTR n'est alors pris en compte
jusqu'à la mise à 1 de IF par l'instruction STI (SeT Interrupt flag).
µP 8086 – Interruptions logicielles
Exemple:
Exemple:
Constat: Cette méthode est inefficace parce que le microprocesseur passe tout
son temps à attendre l'arrivée d'un caractère alors qu'il devrait s'occuper
d'autres tâches.
µP 8086 – Application d'interruption
Méthode par interruption:
Le flux d'information peut exister dans les deux sens : de l'extérieur vers le
microprocesseur (clavier, liaison série, réseau, disque, ...) ou du
microprocesseur vers l'extérieur (imprimante,écran, disque, traceur, ...)
Chaque registre interne est associé à une adresse d'E/S. Pour y accéder, il
existe deux instructions IN et OUT :
Rq: AL et DX sont les seuls registres autorisés dans les opérations d'E/S.
µP 8086 – Entrées/Sorties
Circuit d'interface série
La gestion des ports série est prise en charge par à un circuit appelé
l'UART 8250 (UniversalAsynchronous Receiver Transmitter).
décalage).
Le caractère reçu sur le port série est mis par l'UART dans le registre
de réception RBR.
Conclusion
µP 8086 – Initiation à la programmation
Nombre DB 18h
Nombre DW 3C0Fh
Tab DB 15h,5Ah,21h,7Ch,82h
Pour définir un tableau de 10 octets sans initialisation, on écrit :
Rq: Une chaîne de caractères est stockée sous forme d’octets représentant le code
Les variables déclarées sont placées l'une après l'autre dans la mémoire.
Exemple:
Donnees SEGMENT PARA; Début du segment
Var1 DB 12h; 1 octet
Mot1 DW 15E4h; 2 octets (mot de 16 bits)
Table DB5 DUP(1Ch); 5 octets (taille du tableau)
Chaine DB 'Test',0A; 5 octets (longueur de la chaîne)
Donnees ENDS; Fin du segment
Exercice:
Soient deux tables de 5 valeurs dont le début est désigné par les
labels XVect et YVect. La deuxième table n'est pas initialisé.
XVect DB 12h,3Ah,15h,4C,2Dh
YVect DB5 DUP (?)
Solution:
LEA SI,XVect ;Charger SI par l'adresse désignée par XVect
LEA DI,YVect ;Charger DI par l'adresse désignée par YVect
MOV AH,5
suite: MOV AL,[SI]
MOV [DI], AL
INC SI
INC DI
DEC AH
CMP AH,0
JNE suite
µP 8086 – Initiation à la programmation
Déclaration du segment de pile:
La pile est une zone mémoire qui doit être réservée pour le
programme (gestion des appel aux sous-programmes et aux
interruptions, ...), et pour d'autres usages généraux (sauvegarde de
données temporaires, passage de paramètres à une procédure, ...)