Академический Документы
Профессиональный Документы
Культура Документы
Systèmes à microprocesseurs
2/21
Objectives
Les objectifs de ce chapitre sont:
- Décrire la famille Intel des mP de 8085 a 80486, en termes des tailles de
bus et mémoire physique.
- Expliquer les fonctions de EU (Unité d’Exécution) et BIU (Unité Interface
Bus).
- Décrire la notion de pipeline et comment elle permettra de rendre le
fonctionnement des CPUs plus rapide.
- Lister les registres du mP8086.
- Donner quelques exemples simples utilisant les instructions MOV et
ADD, et décrire l’effet de ces instructions sur leurs opérandes.
- Expliquer la différence entre une adresse logique et une adresse
physique.
- Décrire la convention de sauvegarde « Little Endian » dans les mP80x86.
- Expliquer la notion de pile et ses instructions PUSH et POP.
- Lister les bits du registre FLAG, leurs utilités, et monter l’effet de
l’instruction ADD sur ce registre.
- Lister les modes d’adressage du mP8086.
Systèmes à microprocesseurs
3/21
- Le mP 8086 a marqué une grande avancée par rapport aux générations précédentes,
mais il a rencontré une résistance d’utilisation du au fait que son bus de données externe de 16-bits
ne prêtait pas aux périphériques existants en ce moment conçus pour des mP à 8-bits. En plus du
fait que les cartes de circuits imprimés avec un bus de données 16-bits étaient chères.
- Ceci explique pourquoi Intel a conçu le mP8088, qui est le même que le mP8086 au
niveau de la programmation avec la même capacité mémoire, 1Mo. Seulement son bus de données
externe est 8-bits au lieu de 16-bits.
Systèmes à microprocesseurs
4/21
- Succès du mP 8088:
La situation financière d’Intel s’est considérablement amélioré lorsque IBM a choisi le 8086
comme le mP de choix pour son micro-ordinateur IBM PC, qui a connu un énorme succès, a
cause du fait qu’IBM et Microsoft (qui a développé MSDOS), l’ont rendu système ouvert, i.e.
la documentation hardware et software du PC est accessible au public. Ceci a permis aux
autres vendeurs de cloner le hardware avec succès. A contrario, Apple’s Macintosh, qui a un
système fermé, a bloqué toute tentative de clonage par d’autres manufacturiers.
-Le mP 80286
- Avec le succès qu’a connu Intel et devant le besoin manifeste des utilisateurs PC
pour un mP plus puissant, Il a introduit le mP 80286 en 1982. Ses principales caractéristiques
sont: un bus de donnes interne et externe de 16-bit, un bus d’adresses de 24-bit (ciblant
16Mbytes de mémoire), et surtout sa mémoire virtuelle.
- Le mP 80286 opère en 2 modes: réel et protégé. Le mode réel n’est autre que la
version rapide du mP 8088/8086 avec la même mémoire de 1Mo. Le mode protégé permet
d’adresser une mémoire de 16Mo, mais aussi capable de protéger le OS et programmes d’une
destruction accidentelle par l’utilisateur. Cette caractéristique est absente avec le mP 8088/86.
- La mémoire virtuelle est une façon de tromper le mP en pensant qu’il a accès a une
mémoire illimité en inter-changeant les données entre le disque et la RAM.
- IBM a choisi le mP 80286 pour son micro-ordinateur IBM PC/AT et les fabricants
clones ont suivi.
Systèmes à microprocesseurs
5/21
- Les utilisateurs demandent toujours des mP plus puissants. Ainsi Intel introduit en 1985 le mP
80386 (Appelé également 80386DX). Un mP d’architecture 32-bits (interne et externe) et un
bus d’adresses de 32-bits, capable de cibler une mémoire physique de 4Go. Sa mémoire
virtuelle a été augmenté à 64 To.
- Tout les mP précédents sont a utilisation générale, donc ne sont pas capable de traiter
rapidement des opérations mathématiques. Intel a mis sur le marche des circuits co-
processeurs mathématiques, comme les 8087, 80287 et 80387.
- Plus tard Intel a introduit le mP 80386SX, qui a la même architecture interne que le mP 80386
mais avec un bus de données a 16-bits et un un bus d’adresses a 24-bits (1Mo de mémoire).
Ce qui rend son prix moins cher.
- Avec l’introduction du mP 80486, Intel a amélioré le mP 80386 en intégrant un co-processeur
mathématique dans une seule puce. En plus d’autres caractéristiques telles que mémoire
cache (mémoire SRAM a temps d’accès très rapide), ont été introduites.
- Il est important de noter que les programmes écrit pour le mP 8088/86 peuvent être exécutés
également sur les mP 80x86.
- D’autres générations qui sont venus après les mP 80x86 ont pour noms mP Pentium.
Systèmes à microprocesseurs
6/21
- BIU possède un buffer (chaîne), qui permet de stocker les instructions précédentes:
mP8088 possède une chaîne de 4 octets et le mP8086 en possède 6 octets.
- Si une instruction est lente pour s’exécuter, le buffer se voit remplir vite et y restera ainsi
La BIU ne cherche une nouvelle instruction que s’il y’a 2 octets inoccupés dans le buffer
(mP8086) et 1 octet ( mP8088).
- Pour mP8088/86, il existe 2 stages de pipeline: fetch et exécute. Avec les mP plus puissants, il y’a
plusieurs niveaux de pipeline.
Fetch 1 Execute 1
Fetch 1 Execute 1 Fetch 2 Execute 2 Execution avec Fetch 2 Execute 2
Pipeline
Execution Sans Pipeline mP 80x86 Fetch 3 Execute 3
mP8085
Systèmes à microprocesseurs
7/21
- Quelques instructions utilisent des registres spécifiques pour accomplir leurs taches. D’après la 1ere
lettre, on peut deviner son utilisation.
CATEGORIES REGISTRES
Générale AX, BX, CX, DX
(AH, AL), AX15 AX14 AX8 AX7 AX1 AX0
8 bits ou (BH, BL),
16-bits
(CH, CL), AH7 AH6 AH1 AH0
(DH, DL),
AL7 AL6 AL1 AL0
Pointeur SP, BP
Index SI, DI
Systèmes à microprocesseurs
8/21
Registres généraux
BUS MULTIPLIXE GENERATION D’ADRESSES
&
BUS DE CONTROLE
OPERANDES
ALU Buffer
Registres d'état
FR et de contrôle
Systèmes à microprocesseurs
9/21
Section 1.3 : Introduction à la
programmation Assembleur
Programmer vite et
moins d’erreurs
RAM
MNEMONIQUES (facile a se rappeler)
RAM
1400h 10110000 B0h
MOV AL, 21h
00100001 21h
Meilleure programmation
00000100 04h Bonne connaissance
ADD AL, 42h des registres, leur
01000010 Bin 42h
taille et de la CPU
10100111 Hex A7h en générale
Systèmes à microprocesseurs
10/21
Section 1.3 : Introduction à la
programmation Assembleur
Programme en langage Assembleur = série d’instructions écrite en langage assembleur.
Une instruction en langage assembleur = mnémonique suivi de un/deux opérandes (données à manipuler).
Une mnémonique = une commande a la CPU lui montrant ce que doit faire avec les opérandes.
Instruction MOV: copie (déplacer) une donnée d’une location à une autre.
MOV destination, source ; copie opérande source destination
MOV CL, 55h ; déplacer 55h vers le registre CL.
Attention: spécifie h pour MASM sinon décimal. Avec DEBUG pas besoin, tout HEX
MOV DL, CL ; copie le contenu du registre CL vers le registre DL
MOV AH, DL ; copie le contenu du registre DL vers le registre AH
MOV CX, 468Fh ; déplacer 468Fh vers le registre CX (CH = 46h et CL = 8Fh)
MOV AX, CX ; copie le contenu du registre CX vers le registre AX
MOV DS, AX ; copie le contenu du registre AX vers le registre DS
MOV BX, 9 ; copie la donnée 0009h vers le registre BX BL = 09h et BH = 00h
Attention!!!
MOV AL, CX ; erreur, les registres n’ont pas la même taille
MOV AL, 2345h ; erreur, la donnée et le registre AL n’ont pas la même taille
MOV FR, AX ; erreur, on on ne déplace pas le contenu du registre d’état et de contrôle
MOV CS, 3D15h ; erreur, les données ne peuvent être déplacées aux registres segments
Solution:
MOV AX, 3D15h
MOV CS, AX
Systèmes à microprocesseurs
11/21
Section 1.3 : Introduction à la
programmation Assembleur
Instruction ADD:
ADD destination, source ; ajouter l’opérande source a destination et le résultat vers destination
L’opérande source est un opérande immédiat ou registre. L’opérande destination est toujours registre.
Le format des instructions assembleur, leur description, leur utilisation, etc. se trouvent dans les manuels du
constructeur (Voir Appendice B du livre).
Systèmes à microprocesseurs
12/21
Section 1.4 : Introduction aux Segments du
programme
00000h FFFFFh (= 220 =1Mo)
CS DS ES 64Ko
RAM SS
- Chaque segment = 64Ko (mP8088 a 16 lignes d’adresses).
- Un segment peut se trouver à n’importe quelle adresse multiple de 16.
- Les segments (C, D, S et E) peuvent être disjoints, se recouvrir, ou confondus.
- La segmentation procure l’avantage de déplacer un programme en mémoire, il suffit de modifier le
contenu du registre CS (pagination du code sur le disque).
(adresse
Adresse logique = Adr. Seg. : Adr. Offset Adresse Physique 20 bits
mémoire)
Adresse physique = (Adr. Seg.)0h + Adr. Offset
- Le code et les Données sont mixés ensemble. Si les données changent, le code sera retaper pour
chaque instruction le mP8086 réserve un segment pour les données: “Segment Données”.
- Les registres CS, IP sont utilisés pour les adresses segment et offset du “Seg. Code”, les registres DS
et (BX, SI ou DI) sont utilisés pour les adresses segment et offset du “Seg. Données”.
B INC BX ; BX+1 pointe sur le prochain Octet. MOV AX, 35F3h INTEL 1500 F3
O ADD AL, [BX] ; AL = AL + [BX: 2eme Octet] MOV [1500h], AX 1501 35
U INC BX ; BX+1 pointer sur le prochain Octet
C ADD AL, [BX] ; AL = AL + [BX: 3eme Octet]
L INC BX ; BX+1 pointer sur le prochain Octet DS:1500 = F3 et DS:1501 = 35
E ADD AL, [BX] ; AL = AL + [BX: 4eme Octet] Little Endian (Intel)
INC BX ; BX+1 pointer sur le prochain Octet
DS:1500 = 35 et DS:1501 = F3
ADD AL, [BX] ; AL = AL + [BX: dernier Octet] Big Endian (Motorola)
0450h
NOTE:
1. Si l’Offset change, une seule instruction est à changer dans le code: MOV BX, 0200h.
2. Améliorer le code deux instructions sont répétés 4 fois avec la notion de boucle (Registre Flag).
3. ES : Segment Extra (même que DS) est surtout utilisé pour les opérations chaînes de caractères.
Systèmes à microprocesseurs
16/21
- Nombre limité de registres dans la CPU. Economie de transistors une portion de la RAM est
réservée au “segment de pile” (=100s registres) stocker l’information temporairement.
- Son inconvénient est son temps d’accès, beaucoup plus long par rapport aux registres, car elle
se trouve à l’extérieur de la CPU.
- De même que CS et PI “Segment de Code”, SS et SP “Segment de Pile”. Ces registres RAM
sont chargés avant toute instruction permettant d’accéder la pile.
IP
- Tout les registres des mP80x86 peuvent être stocker dans la pile (PUSH) et ramener vers la
CS
CPU de la pile (POP), sauf les registres (CS, DS, SS, ES) et SP.
- Le registre SP pointe sur le top (la dernière location de la pile pour le 80x86) de la pile. Quand une
donnée est stockée, il décrémente et vice versa.
- Le registre à stocker/ramener dans/de la pile doit être de 16 bits: PUSH AX (PUSH AL). P
P
U
O
S
P
H
Adresse Logique et Adresse Physique pour le “Segment de Pile”: SS:SP SS0h + SP SS
SP
Notes:
1. C’est la responsabilité du DOS d’assigner des valeurs à SS et SP (Gestion de la mémoire par DOS)
2. BP peut être aussi utilisé comme Adresse Offset pour SS dans certaines applications.
Systèmes à microprocesseurs
17/21
CS:A290 PUSH AX CS
CS:A291 PUSH DI
CS:A292 PUSH DX
CS CS:A293 POP CX
CS:A294 POP DX DS
CS:A295 POP BX
SS
SS:1230
XX
SS:1231 93 93 93 93
SS:1232 5F 5F 5F 5F
SS SS:1233 C2 C2 C2 C2 C2
SS:1234 85 85 85 85 85
XX B6
SS:1235 B6 B6 B6 B6
XX B6
24 24 24 24
SS:1236 24 24
RAM
PUSH AX PUSH DI PUSH DX POP CX POP DX POP BX
Systèmes à microprocesseurs
18/21
Systèmes à microprocesseurs
19/21
Systèmes à microprocesseurs
20/21
Récapitulatif
Modes d’Adressage Opérande Segment par défaut
Registre reg /
Immédiat data /
Direct [offset] DS
Registre Indirect [BX] DS
[SI] DS
[DI] DS
Base relative [BX] + dépl. DS
[BP] + dépl. SS
Index relatif [DI] + dépl. DS
[SI] + dépl. DS
Base Index relatif [BX][DI] + dépl. DS
[BX][SI] + dépl. DS
[BP][DI] + dépl. SS
[BP][SI] + dépl. SS
Systèmes à microprocesseurs
21/21
Registres Segment CS DS ES SS
Registres Offset IP SI, DI, BX SI, DI, BX SP, BP
Systèmes à microprocesseurs