Vous êtes sur la page 1sur 25

Microprocesseur et Microcontrôleur

CHAPITRE I
Architecture et Fonctionnement d’un Microprocesseur
OBJECTIFS
Ce chapitre a les objectifs suivants :
S’introduire la description matériel d’un system à microprocesseur
S’expliquer la circulation des information dans un system à microprocesseur
S’expliquer le fonctionnement d’un microprocesseur
S’expliquer l’organisation de la mémoire central d’un calculateur
1. Introduction
Le plus important élément d’un system informatique (calculateur) est l’unité
centrale de traitement (UCT), en Anglais Central Processing Unit (CPU :). CPU
est constituée :
• d’une unité arithmétique et logique (UAL, ALU : Arithmetic and Logic
Unit) : c’est l’organe de calcul du calculateur ;
• de registres : zones de stockage des données de travail de l’UAL
(opérandes, résultats intermédiaires) ;
• d’une unité de contrôle (UC, CU : Control Unit) : elle envoie les ordres (ou
commandes) à tous les autres éléments du calculateur afin d’exécuter un
programme.
Fig.1. représente une architecture type d’un système à microprocesseur :
La mémoire centrale (main memory) contient le programme à exécuter et les
données à traiter.
L’unité d’entrées/sorties (Input/Output (I/O) est un intermédiaire entre le
calculateur et le monde extérieur.

1
Microprocesseur et Microcontrôleur

Fig.1. Architecture d’un Système Informatique

Remarque: un circuit intégré qui inclut une UCT, de la mémoire et des


périphériques est un microcontrôleur.
Un microprocesseur est caractérise par :
• La fréquence de son horloge en MHz ou GHz
• Le nombre d’instructions par seconde qu’il est capable d’exécuter en MIPS
• La taille des données qu’il est capable de traiter à la fois en bits

2. Circulation de l’Information dans un Calculateur


La réalisation matérielle des ordinateurs est généralement basée sur l’architecture
de Von Neumann:
Le microprocesseur échange des informations avec la mémoire et l’unité d’E/S,
sous forme de mots binaires, au moyen d’un ensemble de connexions appelé bus.
Un bus permet de transférer des données sous forme parallèle, c’est-a-dire en
faisant circuler n bits simultanément.

2
Microprocesseur et Microcontrôleur

Les microprocesseurs peuvent être classés selon la longueur maximale des mots
binaires qu’ils peuvent échanger avec la mémoire et les E/S : microprocesseurs 8
bits, 16, 32, ou 64bits...
Le bus peut être d´décompose en trois bus distincts :
• le bus d’adresses (address bus) permet au microprocesseur de spécifier l’adresse
de la case mémoire à lire ou à écrire ;
• le bus de données (data bus) permet les transferts entre le microprocesseur et la
mémoire ou les E/S ;
• le bus de commande (control bus) transmet les ordres de lecture et d’écriture de la
mémoire et des E/S. les bus de données et de commande sont bidirectionnels, le
bus d’adresse est unidirectionnel : seul le microprocesseur peut délivrer des
adresses (il existe une exception pour les circuits d’accès direct `a la mémoire,
DMA).

Fig.2. Les Trois Bus de Communication

Une nappe de 32 fils permet ainsi de transmettre 32 bits en parallèle. On parle ainsi
de "largeur de bus" pour désigner le nombre de bits qu'il peut transmettre
simultanément. D'autre part, la vitesse d’un bus est également définie par sa
fréquence (exprimée en Hertz), c'est-à-dire le nombre de paquets de données
envoyés ou reçus par seconde. La bande passante d'un bus, c'est-à-dire le débit de
données qu'il peut transporter, est sa largeur multiplier par sa fréquence. Un Bus
3
Microprocesseur et Microcontrôleur

d'une largeur de 16 bits, cadencé à une fréquence de 133 Mhz possède donc une
bande passante égale à:
16 * 133.106 = 2128*106 bit/s=253.7 MB/s
3. Description Matérielle d’un Microprocesseur (Intel 8086)
On peut représenter un microprocesseur par son schéma fonctionnel (Fig.3.)

Fig.3. Schéma Fonctionnel d’un Microprocesseur


3.1. Description Physique du 8086
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 :

Fig4. Description Matérielle du MP 8086 Fig5. Schéma fonctionnelle du MP 8086


4
Microprocesseur et Microcontrôleur

Table 1 : Caractéristiques d'entrée

3.2. Description des Quelques Signaux du 8086


CLK : entrée du signal d’horloge qui cadence le fonctionnement du
microprocesseur. Ce signal provient d’un générateur d’horloge : le 8284

Fig.6. Générateur d’horloge 8284

RESET : entrée de remise à zéro du microprocesseur. Lorsque cette entrée est


mise à l’état haut pendant au moins 4 périodes d’horloge, le microprocesseur est
réinitialisé : il va exécuter l’instruction se trouvant à l’adresse FFFF0H (adresse de
boot strap). Le signal de RESET est fourni par le générateur d’horloge.
READY: entrée de synchronisation avec la mémoire. Ce signal provient également
du générateur d’horloge.
̅̅̅̅̅̅̅̅
𝑻𝑬𝑺𝑻: entrée de mise en attente du microprocesseur d’un événement extérieur.
̅̅̅̅̅) : entrée de choix du mode de fonctionnement du microprocesseur :
MN/(𝑴𝑿
̅̅̅̅̅ )= 1) : le 8086 fonctionne de manière autonome,
o mode minimum (MN/(𝑀𝑋
il génère lui-même le bus de commande (RD, WR, ...) ;
̅̅̅̅̅) = 0) : ces signaux de commande sont produits
o mode maximum (MN/(𝑀𝑋
par un contrôleur de bus, le 8288. Ce mode permet de réaliser des systèmes
multiprocesseurs.

5
Microprocesseur et Microcontrôleur

NMI et INTR : entrées de demande d’interruption. INTR : interruption normale,


NMI (Non Maskable Interrupt) : interruption prioritaire.
̅̅̅̅̅̅̅̅: Interrupt Acknowledge, indique que le microprocesseur accepte
𝑰𝑵𝑻𝑨
l’interruption.
HOLD et HLDA : signaux de demande d’accord d’accès direct à la mémoire
(DMA).
S0 à S7 : signaux d’état indiquant le type d’opération en cours sur le bus.
A16/S3 à A19/S6 : 4 bits de poids fort du bus d’adresses, multiplexés avec 4 bits
d’état.
AD0 à AD15 : 16 bits de poids faible du bus d’adresses, multiplexés avec 16 bits
de données. Le bus A/D est multiplexé (multiplexage temporel) d’où la nécessité
d’un démultiplexage pour obtenir séparément les bus d’adresses et de données :
16 bits de données (microprocesseur 16 bits) ;
20 bits d’adresses, d’où 220 = 1Mo d’espace mémoire adressable par le 8086.

Fig.7. Chronogramme du bus A/D :

Le démultiplexage des signaux AD0 à AD15 (ou A16/S3 à A19/S6) se fait en


mémorisant l’adresse lorsque celle-ci est présente sur le bus A/D, à l’aide d’un
verrou (latch), ensemble de bascules D. La commande de mémorisation de

6
Microprocesseur et Microcontrôleur

l’adresse est générée par le microprocesseur: c’est le signal ALE, (Address Latch
Enable).

Fig.8. Circuit de Démultiplexage A/D

Fonctionnement: omrane@univ-setif.dz
• si ALE = 1, le verrou est transparent (Q = D);
• si ALE = 0, mémorisation de la dernière valeur de D sur les sorties Q;
̅̅̅̅̅) ou d’écriture (𝑾𝑹
• les signaux de lecture (𝑹𝑫 ̅̅̅̅̅) ne sont générés par le
microprocesseur que lorsque les données sont présentes sur le bus A/D.
Exemples de bascules D : circuits 8282, 74373, 74573

Fig.9. Circuit de démultiplexage A/D

̅̅̅̅: Read, signal de lecture d’une donnée.


𝑅𝐷
̅̅̅̅̅: Write, signal d’écriture d’une donnée.
𝑊𝑅
̅̅̅: Memory/Input-Output, indique si le 8086 adresse la mémoire (M/𝐼𝑂
M/𝐼𝑂 ̅̅̅ = 1) ou
̅̅̅= 0).
les entrées/sorties (M/𝐼𝑂
7
Microprocesseur et Microcontrôleur

̅̅̅̅̅̅: Data Enable, indique que des données sont en train de circuler sur le bus
𝐷𝐸𝑁
A/D (équivalent de ALE pour les données).
DT/𝑅̅ : Data Transmit/Receive, indique le sens de transfert des données :
• DT/𝑅̅ = 1 : données émises par le microprocesseur (écriture) ;
• DT/𝑅̅ = 0 : données reçues par le microprocesseur (lecture).

Fig.10. Cycle D’écriture/lecture Fig. 11. Exemple de Tampons Circuits

̅̅̅̅̅̅ et DT/𝑅̅ sont utilisés pour la commande de tampons de bus


Les signaux 𝐷𝐸𝑁
(buffers) permettant d’amplifier le courant fourni par le microprocesseur sur le bus
de données.
Exemples de tampons de bus: circuits transmetteurs bidirectionnels 8286 (Fig.11.)
ou 74245.
̅̅̅̅̅̅
𝐵𝐻𝐸 : Bank High Enable, signal de lecture de l’octet de poids fort du bus de
données.
Le 8086 possède un bus d’adresses sur 20 bits, d’où la capacité d’adressage de
1Mo ou 512 Kmots (Kword) de 16 bits (bus de données sur 16 bits).

8
Microprocesseur et Microcontrôleur

Le méga-octet adressable est divisé en deux banques de 512 Ko chacune : la


banque inferieure (ou paire) et la banque supérieure (ou impaire). Ces deux
banques sont sélectionnées par :
• A0 pour la banque paire qui contient les octets de poids faible ;
• ̅̅̅̅̅̅
𝐵𝐻𝐸 pour la banque impaire qui contient les octets de poids fort

Fig.12. Banques paire et impaire de mémoire

Seuls les bits A1 `a A19 servent a designer une case mémoire dans chaque banque
de 512 Ko. Le microprocesseur peut ainsi lire et écrire des données sur 8 bits ou
sur 16 bits :
Table 2 : Les Signaux A0 et BHE

Le 8086 ne peut lire une donnée sur 16 bits en une seule fois, uniquement si l’octet
de poids fort de cette donnée est rangé a une adresse impaire et l’octet de poids
faible a une adresse paire (alignement sur les adresses paires), sinon la lecture de
9
Microprocesseur et Microcontrôleur

cette donnée doit se faire en deux opérations successives, d’où une augmentation
du temps d’exécution du transfert dû à un mauvais alignement des données.

Fig. 13. Réalisation des deux banques avec plusieurs boitiers mémoire Fig.14.Interface du Bus Adresse et Bus Donnée

4. Les mémoires
Une mémoire est un circuit à semi-conducteur permettant d’enregistrer, de
conserver et de restituer des informations (instructions et variables). C’est cette
capacité de mémorisation qui explique la polyvalence des systèmes numériques et
leur adaptabilité à de nombreuses situations. Les informations peuvent être écrites
ou lues. Il y a écriture lorsqu'on enregistre des informations en mémoire, lecture
lorsqu'on récupère des informations précédemment enregistrées.

10
Microprocesseur et Microcontrôleur

4.1. Organisation d’une mémoire


Avec une adresse de n bits il est possible de référencer au plus 2n cases mémoire.
Chaque case est remplie par un mot de données (sa longueur m est toujours une
puissance de 2). Le nombre de fils d’adresses d’un boîtier mémoire définit donc le
nombre de cases mémoire que comprend le boîtier. Le nombre de fils de données
définit la taille des données que l’on peut sauvegarder dans chaque case mémoire.
En plus du bus d’adresses et du bus de données, un boîtier mémoire comprend une
entrée de commande qui permet de définir le type d’action que l’on effectue avec
la mémoire (lecture/écriture) et une entrée de sélection qui permet de mettre les
entrées/sorties du boîtier en haute impédance.
On peut donc schématiser un circuit mémoire par la Figure 15 où l’on peut
distinguer :
• Les entrées d’adresses
• Les entrées de données
• Les sorties de données
• Les entrées de commandes :
▪ Une entrée de sélection de lecture ou d’écriture. (R/W)
▪ Une entrée de sélection du circuit. (CS)

Fig.15. : schéma d'une mémoire

11
Microprocesseur et Microcontrôleur

4.2. Caractéristiques d’une mémoire


▪ La capacité : c’est le nombre total de bits que contient la mémoire.
Elle s’exprime aussi souvent en octet (byte).
▪ Le format des données : c’est le nombre de bits que l’on peut
mémoriser par case mémoire. On dit aussi que c’est la largeur du mot
mémorisable.
▪ Le temps d’accès : c’est le temps qui s'écoule entre l'instant où a été
lancée une opération de lecture/écriture en mémoire et l'instant où la
première information est disponible sur le bus de données.
▪ Le temps de cycle : il représente l'intervalle minimum qui doit séparer
deux demandes successives de lecture ou d'écriture.
▪ Le débit : c’est le nombre maximum d'informations lues ou écrites par
seconde.
▪ Volatilité : elle caractérise la permanence des informations dans la
mémoire. L'information stockée est volatile si elle risque d'être altérée
par un défaut d'alimentation électrique et non volatile dans le cas
contraire.
4.3. Différents types de mémoires
Généralement il y a deux types de mémoires :
• Les mémoires vives (RAM : Random Access Memory) ou mémoires volatiles.
Elles perdent leur contenu en cas de coupure d’alimentation. Les RAM sont les
mémoires principales du système. Elles sont utilisées pour stocker temporairement
des données et des programmes (contrairement au stockage de données sur une
mémoire de masse telle que le disque dur). Elles peuvent être lues et écrites par le
microprocesseur;
DRAM (intégration élevée, faible coût mais nécessite un rafraîchissement
périodique à cause du courant de fuite des condensateurs, exemple : cache
12
Microprocesseur et Microcontrôleur

mémoire). La mémoire cache est une mémoire qui enregistre temporairement des
copies de données provenant d'une source, afin de diminuer le temps d'un accès
ultérieur (en lecture) d'un processeur à ces données. Elle est plus rapide et plus
proche du µp et plus petite.
SRAM (très rapide, simple d’utilisation mais compliqué à réaliser).
• Les mémoires mortes (ROM : Read Only Memory) ou mémoires non volatiles.
Elles conservent leur contenu en cas de coupure d’alimentation. Elles ne peuvent
être que lues par le microprocesseur (pas de possibilité d’écriture). On les utilise
pour stocker des données et des programmes de manière définitive.
Les types de ROM sont :
• ROM : Read Only Memory. Mémoire a lecture seule, sans écriture. Son
contenu est programmé une fois pour toutes par le constructeur. Avantage :
faible coût. Inconvénient : nécessite une production en très grande quantité.
• PROM: Programmable Read Only Memory. ROM programmable une seule fois
par l’utilisateur (ROM OTP : One Time Programming) en faisant sauter des
fusibles. Nécessite un programmateur spécialisé: application d’une tension de
programmation (21 ou 25 V) pendant 20 ms.
• EPROM : Erasable PROM, appelée aussi UVPROM. ROM programmable
électriquement avec un programmateur et effaçable par exposition a un
rayonnement ultraviolet pendant 30 minutes. exemple : 2764 (8 Ko), 27256 (32
Ko).Avantage : reprogrammable par l’utilisateur.
• EEPROM : Electrically Erasable PROM. ROM programmable et effaçables
électriquement. Lecture `a vitesse normale (≤ 100 ns). Ecriture (effacement) très
lente (≈10 ms). Application : les EEPROM contiennent des données qui peuvent
être modifiées de temps en temps, exemple : paramètres de configuration des
ordinateurs. Avantage : programmation sans extraction de la carte et sans
programmateur. Inconvénient: coût élevé.
13
Microprocesseur et Microcontrôleur

Mémoire Flash : est un support électronique (semi-conducteurs) similaire à


EEPROM non-volatile de stockage medium qui peut être effacée électriquement et
reprogrammée. L’effacement peut se faire sélectivement par blocs et ne nécessite
pas le démontage du circuit. La vitesse d’accès est très élevée (applications :
laptops, cameras, phone mobile…).
Mémoire Cache : une mémoire qui enregistre temporairement des copies de
données provenant d'une source, afin de diminuer le temps d'un accès ultérieur (en
lecture) d'un processeur à ces données. Elle est plus rapide et plus proche du mp et
plus petite.

Simple 4-byte diode ROM and 4-byte PROM

Fig.16. Quelques Exemples de ROM


14
Microprocesseur et Microcontrôleur

4.4. Connexion de Plusieurs boitiers Mémoire sur le bus d’un MP

Fig.17. Connexion mémoire-MP

Dans un même boitier, une case mémoire est désignée par les bits d’adresses A0 à
A12.

Pour la mémoire no1, on doit avoir A13 = 0, A14 = 1 et A15 = 0 d’où la plage
d’adresses occupée par cette mémoire:

Pour la mémoire no3, on doit avoir A13 =0, A14 = 0 et A15 = 1 d’où la plage
d’adresses occupée cette mémoire :

15
Microprocesseur et Microcontrôleur

On en déduit la cartographie ou mapping de la mémoire visible par le


microprocesseur.

Fig.18. Mapping de la Memoire dans l’Exemple ci-dessus

4.5. Décodage d’Adresses :


Les trois bits A13, A14 et A15 utilisés précédemment fournissent en fait 8
combinaisons, de 000 à 111, d’où la possibilité de connecter jusqu’`a 8 boîtiers
mémoire de 8 Ko sur le bus. La mémoire totale implantée devient donc de 8 × 8
Ko = 64 Ko : valeur maximale possible avec 16 bits d’adresses.
Pour cela, il faut utiliser un circuit de d´décodage d’adresses, dans ce cas: un
décodeur3 vers 8.

16
Microprocesseur et Microcontrôleur

Fig.19.Décodeur de l’Adresse des Diffèrent Boîtiers Mémoires

5. Description Logiciel du MP 8086


Le 8086 est constitué de deux unités fonctionnant en parallèle :
• l’unité d’exécution (EU : Exécution Unit) ;
• l’unité d’interface de bus (BIU : Bus Interface Unit) ;

Fig.20. Organisation Interne du MP8086

17
Microprocesseur et Microcontrôleur

• l’unité d’interface de bus (BIU) recherche les instructions en mémoire et les


range dans une file d’attente;
• l’unité d’exécution (EU) exécute les instructions contenues dans la file d’attente.
Les deux unités fonctionnent simultanément, d’où une accélération du processus
d’exécution d’un programme (fonctionnement selon le principe du pipelining).
Le microprocesseur 8086 contient 14 registres répartis en 4 groupes :
• Registres généraux: 4 registres sur 16 bits.
o AX = (AH,AL) ;BX = (BH,BL) ;CX = (CH,CL) ;DX = (DH,DL).
Ils peuvent être également considérés comme 8 registres sur 8 bits. Ils servent à
contenir temporairement des données. Ce sont des registres généraux mais ils
peuvent être utilisés pour des opérations particulières. Exemple : AX =
accumulateur, CX= compteur.
• Registres de pointeurs et d’index : 4 registres sur 16 bits.
o Pointeurs :
SP: Stack Pointer, pointeur de pile (la pile est une zone de sauvegarde
de données en cours d’exécution d’un programme) ;
BP: Base Pointer, pointeur de base, utilise pour adresser des données
sur la pile.
o Index :
SI : Source Index ;
DI : Destination Index.
Ils sont utilisés pour les transferts de chaines d’octets entre deux zones
mémoire. Les pointeurs et les index contiennent des adresses de cases
mémoire.
• Pointeur d’instruction et indicateurs (flags) : 2 registres sur 16 bits.
o Pointeur d’instruction : IP, contient l’adresse de la prochaine
instruction a exécuter.
18
Microprocesseur et Microcontrôleur

o Flags :

• Registres de segments : 4 registres sur 16 bits.


o CS : Code Segment, registre de segment de code
o DS : Data Segment, registre de segment de données ;
o SS : Stack Segment, registre de segment de pile ;
o ES : Extra Segment, registre de segment supplémentaire pour les
données
Les registres de segments, associés aux pointeurs et aux index, permettent au
microprocesseur 8086 d’adresser l’ensemble de la mémoire.
2. Gestion de la mémoire par le 8086
L’espace mémoire adressable par le 8086 est de 220 = 1048576 octets = 1Mo (20
bits d’adresses). 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 a 0. Pour désigner une case
mémoire parmi les 216 = 65 536 contenues dans un segment, il suffit d’une valeur
sur 16 bits. Ainsi, une case mémoire est repérée par le 8086 au moyen de deux
quantités sur 16 bits :
19
Microprocesseur et Microcontrôleur

• l’adresse d’un segment ;


• un déplacement ou offset (appelé aussi adresse effective) dans ce segment. Cette
méthode de gestion de la mémoire est appelée segmentation de la mémoire.

Fig.21. Segmentation de La mémoire du 8086

La donnée d’un couple (segment, offset) définit une adresse logique, notée sous la
forme : segment : offset.
L’adresse d’une case mémoire donnée sous la forme d’une quantité sur 20 bits (5
digits hexa) est appelée adresse physique car elle correspond à la valeur envoyée
réellement sur le bus d’adresses A0 - A19.
(Adresse physique=10xsegment+offset)16
A un instant donné, le 8086 a accès a 4 segments dont les adresses se trouvent dans
les registres de segment CS, DS, SS et ES. Le segment de code contient les
instructions du programme, le segment de données contient les données
manipulées par le programme, le segment de pile contient la pile de sauvegarde et
le segment supplémentaire peut aussi contenir des données.
Le registre CS est associé au pointeur d’instruction IP, ainsi la prochaine
instruction à exécuter se trouve à l’adresse logique CS : IP.

20
Microprocesseur et Microcontrôleur

Fig.22. L’adresse de l’instruction à exécuter Fig.23. Mémoire accessible par le 8086`a un instant donné

De même, les registres de segments DS et ES peuvent être associés à un registre


d’index.
Exemple : DS : SI, ES : DI. Le registre de segment de pile peut être associé aux
registres de pointeurs : SS : SP ou SS : BP.
Les segments ne sont pas nécessairement distincts les uns des autres, ils peuvent se
chevaucher ou se recouvrir complètement.

Fig.24. Les segments de la mémoire


21
Microprocesseur et Microcontrôleur

5. Représentation d'un Nombre Entier Naturel.


Un entier naturel est un entier positif ou nul. Le nombre de bits à utiliser de
représenter cet entier dépend de la fourchette des nombres que l'on désire utiliser.
Pour coder des nombres entiers naturels compris entre 0 et 255, il nous suffira de 8
bits (un octet) car 28=256. D'une manière générale un codage sur n bits pourra
permettre de représenter des nombres entiers naturels compris entre 0 et 2 n-1. Pour
représenter un nombre entier naturel, après avoir défini le nombre de bits sur lequel
on le code (8, 16 ou 32…), il suffit de ranger chaque bit dans la cellule binaire
correspondant à son poids binaire de la droite vers la gauche, puis on "remplit" les
bits non utilisés par des zéros.
Exemple :
sur 8 bits
143 =128+8+4+2+1=27+23+22+21+20=10001111

Représentation d'un entier signé.


Un entier signé est un entier pouvant être négatif. Il faut donc coder le nombre de
telle façon que l'on puisse savoir s'il s'agit d'un nombre positif ou d'un nombre
négatif, et il faut de plus que les règles d'addition soient conservées. L'astuce
consiste à utiliser un codage que l'on appelle complément à deux (2’s
complement).
- un entier relatif positif ou nul sera représenté en base 2 comme un entier naturel,
à la seule différence que le bit de poids fort (le bit situé à l'extrême gauche)
représente le signe. Il faut donc s'assurer pour un entier positif ou nul qu'il est à
zéro (0 correspond à un signe positif, 1 à un signe négatif). Le plus grand entier
relatif positif codé sur n bits sera 2n-1 -1.
-un entier relatif négatif peut représenter par le complément à deux de son opposé
(son équivalent en positif). Soit à représenter un nombre négatif.
22
Microprocesseur et Microcontrôleur

Exemple : On désire de représenter la valeur -23 sur 8 bits.


23 en binaire: 23=16+4+2+1=24+22+21+20=00011011
de complémenter à 2: 11100101 c’est la représentation binaire de -23 sur 8 bits.
Représentation d'un nombre réel (floating-point number) :
Comment représenter un nombre binaire à virgule par exemple 1001,011 (en
décimale 9,375)? par un MP.
Il se présenter sous la forme normalisée1,XXXXX… * 2n pour le nombre ci-dessus
(1,001011*23).
IEEE 754 (standards) se propose de coder le nombre sur 32 bits (single-précision)
ou sur 64 (double-précision) et définit trois composantes:
- le signe est représenté par un seul bit, le bit de poids fort (celui le plus à gauche);
Pour single-précision :
- l'exposant est codé sur les 8 bits consécutifs au signe ;
- la mantisse (les bits situés après la virgule) sur les 23 bits restants;
Ainsi le codage se fait sous la forme suivante:
seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm
-le s représente le bit du signe
- les e représentent les bits de l'exposant (en form biased exponent) = 127 +
exposant en décimale
- les m représentent la mantisse
Pour notre nombre
s=0, exposent=3(biased exponent=13010=10000010),
mantisse=00101100000000000000000
Certaines conditions sont toutefois à respecter pour les exposants:
- l'exposant 00000000 est interdit

23
Microprocesseur et Microcontrôleur

- l'exposant 11111111 est interdit. On s'en sert toutefois pour signaler des erreurs,
on appelle alors cette configuration du nombre NaN (Not a number) les exposants
peuvent ainsi aller de -126 à +128.
Exemple de coder 1052,25 :
+1052,25 s'écrit en base 2 de la façon suivante: 010000011100,01. On veut l'écrire
sous la forme :
1,000001110001 x 210. Par conséquent, le bit s vaut 0, l'exposant vaut 10
(127+10=137):soit 10001001 et la mantisse est 000001110001. La représentation
du nombre 1052.25 en binaire avec la norme IEEE est:
01000100100000111000100000000000
Conversion Inverse est donnée par : No10=(-1)s(1+m)(2e-127)
Ex:
Représenter le réel (-23.4) en binaire en single-précision. Ans :C1BB3333
Convertir : 1 10010001 10001110001000000000000 en décimale. Ans :-407688
Le Code ASCII

Références :
1. Barry B. Brey, “The Intel Microprocessor“, Prentice-Hall International.
1997.

24
Microprocesseur et Microcontrôleur

2. Dr J.Y. Haggege, “Microprocesseur, Support de cours“, Institut Supérieur


des Etudes Technologiques de Rades, 2003.
3. Jlassi Khaled, “Microprocesseurs et Microcontrôleurs“, Université Virtuelle
de Tunis, 2008.

25

Vous aimerez peut-être aussi