Vous êtes sur la page 1sur 171

COURS MICROPROCESSEUR

ET MICROCONTROLEUR
3 Années Automatique
Introduction
 Ordinateur:

 Un ordinateur est une machine de traitement


automatique de l’information.
 Par l’exécution des programmes. Il procure des
résultats ou prend des décisions en fonction des
données introduites.
Architecture d’un ordinateur:
 Introduction :
 L’architecture d’un ordinateur constitue l’ensemble des sous-systèmes
réalisant différents fonctionnalités, la manière de les relier et de les faire
communiquer.
 une architecture informatique est définie par des paramètres
 les instructions du microprocesseur,
 les jeux de registres,
 la méthodologie de gestion de la mémoire,
 ect
Architecture d’un calculateur simple :

 un CPU ;
 mémoire
(RAM/ROM/Masse) ;
 quelques circuits
d’entrée/sortie.
Architecture d’un calculateur simple :
 L’unité centrale de traitement : (Central
Processing Unit).
Elle se compose essentiellement de :
 l’unit de commande qui coordonne les

opérations,
 l’UAL(unité arithmétique et logique) qui effectue

les opérations
 d’un ensemble de registres pour stocker les

données.
la Mémoire :
La mémoire est organisée en plusieurs cellules de
n-bits chacune et chaque cellule à une adresse
fixe permettant d’accéder en écriture ou en
lecture à la cellule en question.
 Mémoire centrale :
 Les mémoire secondaires :
la Mémoire :
 Mémoire centrale :
 le programme à exécuter : est une suite d’instructions élémentaires ;
ainsi que les données à traiter. Sont stoker dans la mémoire.
RAM (Mémoires vives) : Random Access Memory Elles sont utilisées
pour stocker temporairement des données et des programmes
ROM (memoires mortes) : Read Only Memory On les utilise pour
stocker des données et des programmes de manière définitive
(Boot strop programme de démarrage).
la Mémoire :
 Les mémoires secondaires :
 archivagedes programme et données elle sont
volumineuse exp :
 bande magnétique,
 disquettes,
 DD,
 CD.
La mémoire secondaire est généralement adressée autant que
périphérique I/O
la Mémoire :
 Les mémoires sont caractérisées par
leur capacité : nombre total de
cases mémoire de n bits chacune
contenues dans un même boîtier.
 Chaque cellule à une adresse fixe
permettant d’accéder en écriture
ou en lecture à la cellule en
question.
L’unité d’entrées/sorties (E/S)

 l'intermédiaire entre le calculateur et le monde


extérieur. elle permet au calculateur de
communiquer avec le monde extérieur
 Entrer les données (clavier, souris, modem,
microphone,…etc)
 Sortir des résultats (écran, imprimante, modem, Hp; …etc)
L’unité de transfert est le support
matériel de la circulation des données

Les trois parties sont connectées par trois bus


 Bus d'adresse unidirectionnel,
 Seul le processeur envoie des adresses. Il est composé de n fils ; La mémoire peut posséder
au maximum 2n emplacements (adresses 0 à 2n - 1). Exp 8086 la mémoire est organisée en
220 cellules de 8 bits (1 octet) ce qui donne une capacité de 1Go=256 Gbits
 Bus de données bidorectionnel,
 bus pour les transferts des données.

 Bus de contrôle)
 Il est constitue de plusieurs lignes de contrôles qui transportent des signaux (Lecture
mémoire, Ecriture mémoire, Lecture I/O, lecture I/O, Horloge, reset, ready, NMI…
Les microprocesseurs
spécialisés :
 Microcontrôleurs :
 Ils contiennent un CPU, de la RAM, de la ROM, quelques ports d’E/S
parallèles, des ports séries, des compteurs programmables (timers), des
CAN/CNA …dans un seul circuit intégré.
 Ils sont en général utilisés pour contrôler des simples machines (appareils
électroménagers, lecteurs de carte à puce, démonumérique ...)
 – 80C186XX (80186, 16 bits, Intel)
 – 68HC11, 68HC12 (6809, 8 bits, Motorola)
 – 68HC16 (68000, 16 bits, Mototrola)
 – C167XX (Infineon, ex Siemens)
Les microprocesseurs
spécialisés :
 Digital Signal Processor DSP : Ce sont des
processeurs dédiés aux traitements des signaux
numériques. Une architecture particulière leur permet un
traitement efficace des fonctions complexes telles que
FFT, convolution, filtrage numérique ...
 TMS320 (Texas Instrument)
 2100 et 21000 (Analog Device)
 56000 (Motorola)
Les microprocesseurs
spécialisés :

 Processeurs de traitement d’image


 Processeurs spécialisés d’entrées/sorties
Les différentes architectures
 Architecture uni
processeur
 Architecture Von Neumann (1946)
Architecture conventionnelle, la plus
utilisée dans le domaine des
ordinateurs. Elle repose sur quatre
entités principales
Les différentes architectures
 Architecture uni processeur
 Architecture Von Neumann (1946)
 Un seul processeur (unité centrale) :
une seule unité de commande
traitant une seule séquence
d’instruction et une seule unité
d’exécution (UAL) traitant une
unique séquence de données.
Cette architecture est donc
appelée SISD (Single Instruction
Single Data).
Les différentes architectures
 Architecture uni processeur
 Architecture de Harvard (1940, la première employée
pour les ordinateurs) :
 Elle est caractérisée par la séparation des
données et programmes en mémoire.
 un accès simultané aux instructions et aux données
est possible, ce qui implique une exécution plus
rapide.
 Cette architecture est abandonnée sur les
ordinateurs universels en raison de sa complexité
matérielle, mais elle est avantageuse pour les
systèmes de traitement numérique des signaux. Le
4004 (premier processeur Intel) relève de cette
architecture, de même que la plupart des
processeurs DSP.
Les différentes architectures
 Architecture uni processeur
 Temps partagé ou multitâche :
 l’exécution simultanée de plusieurs programmes .
 Cette possibilité repose sur une technique de commutation rapide entre les
différents programmes.
 Inconvénients :
si le processeur ne marche pas, toutes les tâches sont en attente
il y a saturation si le nombre d’utilisateurs ou de tâches augmente
Les différentes architectures

 Architectures parallèles
 Architectures avec cadencement des
données
Architecture
Les différentes architectures

 Architectures parallèles
 Architecture multiprocesseurs (MIMD)
Architecture
Les différentes architectures

 Architectures parallèles
 Processeur pipeline
L’idée est inspirée de l’organisation du
travail à la chaîne
Architecture du Microprocesseur Intel 8086 :
Architecture du Microprocesseur Intel 8086 :

 Description physique du 8086


 Le microprocesseur d'Intel le 8086 est un microprocesseur
16 bits,
 Apparu en juin 1978.

 C’est le premier microprocesseur de la famille Intel 80x86


(8086, 80186, 80286, 80386, 80486, Pentium, ...).
Architecture du Microprocesseur Intel 8086 :
 Description physique du 8086
 Il se présente sous la forme d’un boîtier DIP
(Dual In-line Package) à 40 broches qui lui
assurent le lien avec le monde extérieur
(figure).
Architecture du Microprocesseur Intel 8086 :
 Schéma fonctionnel du 8086
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
 Vcc et GND N° pin 40 et 20
Assure l’alimentation électrique du microprocesseur.
Tension +5V
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
 CLK : N° pin 19 Entrée du signal d’horloge qui cadence le
fonctionnement du microprocesseur. Le signal d'horloge est
très important pour le fonctionnement du microprocesseur.
Ce signal provient
d’un générateur
d’horloge le 8284.
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
 RESET N° pin 21
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 bootstrap). Le signal de
RESET est fourni par le générateur d’horloge.
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
 RESET
Architecture du Microprocesseur Intel 8086 :
 Descriptionet utilisation des signaux du 8086
 READY : N° pin 22 entrée de synchronisation avec

la mémoire et périphériques lents. Ce signal


provient également du générateur d’horloge.
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
 TEST : N° pin 23 entrée de mise en attente du

microprocesseur d’un événement extérieur.


 Elle peut servir à vérifier la fin de l'exécution d'une
opération lente telle que le démarrage du lecteur
de disquette, lecture-écriture sur un disque dur
Architecture du Microprocesseur Intel 8086 :
 Descriptionet utilisation des signaux du 8086
 MN/MX : N° pin 33 entrée de choix du mode de

fonctionnement du microprocesseur :
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
 mode minimum (MN/MX = 1) câblée au +5V: le 8086
fonctionne de manière autonome, il génère lui-même le bus
de commande (RD, WR, ...) ;
 mode maximum (MN/MX = 0) câblée à la masse: ces
signaux de commande sont produits par un contrôleur de bus,
le 8288. Ce mode permet de réaliser des systèmes
multiprocesseurs.
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
 NMI et INTR : N° pin 17 et 18 entrées de demande
d’interruption.
 INTR : interruption normale,

demande d’interruption en
provenance du processeur
de gestion des interruptions (PIC)
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
 NMI et INTR : N° pin 17 et 18 entrées de demande
d’interruption.
 NMI (Non Maskable Interrupt) : interruption
prioritaire. lorsqu’elle est utilisée, cette entrée
d’interruption, non masquable, est généralement
branchée sur une détection de coupure d’alimentation
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
 HOLD et HLDA : signaux de demande d’accord d’accès
direct à la mémoire (DMA).
 HOLD Indique au processeur une demande d'usage des bus. Le
processeur répond à la fin du cycle en cours en mettant HLDA (
hold acknowledge ) à l'état haut et en mettant ses propres
accès au bus en état de haute impédance.
L'accès direct à la mémoire ou DMA (sigle anglais de Direct Memory
Access)
est unArchitecture du Microprocesseur
procédé informatique Intelde,
où des données circulant 8086 : un
ou vers,
périphérique (port de communication, disque dur) sont transférées
 Description
directement par unet utilisation
contrôleur adaptédes
vers signaux
la mémoire du 8086de la
principale
machine,
 HOLDsans intervention
et HLDA du microprocesseur
: signaux de demandesi ce n'est pour
d’accord lancer et
d’accès
conclure
directleàtransfert
la mémoire (DMA).
Le DMA est nécessaire pour conserver la fluidité d'utilisation d'un
 HOLD Indique au processeur une demande d'usage des bus. Le
système multitâche lors de l'accès à des périphériquesrapides tels que
processeur
les disques durs, répond à la fin du cycle en cours en mettant HLDA (
hold acknowledge ) à l'état haut et en mettant ses propres
accès au bus en état de haute impédance.
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
 S0 à S7 : signaux d’état indiquant le type d’opération en
cours sur le bus
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
 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 donnes (microprocesseur 16 bits) ;
 20 bits d’adresses, d’où 220 = 1 Mo d’espace mémoire
adressable par le 8086.
Architecture du Microprocesseur Intel 8086 :
 Circuit de démultiplexage A/D :
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
 RD : Read, signal de lecture d’une donnée.
 WR : Write, signal d’écriture d’une donnée.
 M/IO : Memory/Input-Output, indique si le 8086 adresse
la mémoire (M/IO = 1) ou les entrées/sorties (M/IO = 0).
 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).
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
 DT/R : Data Transmit/Receive, indique le sens de transfert
des données :
 DT/R = 1 : données émises par le microprocesseur (écriture) ;
 DT/R = 0 : données reçues par le microprocesseur (lecture).
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
 HOLD et HLDA : signaux de demande d’accord d’accès
direct à la mémoire (DMA).
 HOLD Indique au processeur une demande d'usage des bus. Le
processeur répond à la fin du cycle en cours en mettant HLDA (
hold acknowledge ) à l'état haut et en mettant ses propres
accès au bus en état de haute impédance.
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
 HOLD et HLDA : signaux de demande d’accord d’accès
direct à la mémoire (DMA).
 HOLD Indique au processeur une demande d'usage des bus. Le
processeur répond à la fin du cycle en cours en mettant HLDA (
hold acknowledge ) à l'état haut et en mettant ses propres
accès au bus en état de haute impédance.
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086

Les signaux DEN et DT/R sont utilisés pour la commande de tampons


de bus (buffers) permettant d’amplifier le courant fourni par le
microprocesseur sur le bus de données.
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
 BHE : Bus 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 1 Mo ou 512 Kmots de 16 bits (bus
de données sur 16 bits).
Architecture du Microprocesseur Intel 8086 :
 Description et utilisation des signaux du 8086
Architecture du Microprocesseur Intel 8086 :
 Organisation interne
du 8086
 • L’unité d’exécution
(EU : Execution Unit) ;
 • L’unité d’interface de bus
(BIU : Bus Interface Unit).
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 • L’unité d’exécution (EU) : exécute
les instructions contenues dans la file
d’attente de l’UIB. Elle contient :
 Unité de décodage ;
 UAL ;
 Indicateurs (flags).
 Registres généraux ;
 Registres pointeur et indexe.
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Unité de décodage :
 décode les instructions chercher
depuis la file d’attente de l’UIB,
 une fois l’unité de contrôle
génère les signaux nécessaire à
l’exécution de cette instruction,
et les renvoie aux déférents
éléments du microprocesseur et
micro ordinateur.
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 UAL : le 8086 possède une
UAL sur 16 bits.
 Elle réalise les opérations
 Arithmétiques (additions et
soustractions…)
 Logiques (OR, AND,
XOR…)
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Registre d’état (flags): c’est un
registre sur 16 bits (ensemble
de bascule) qui sont positionné
suivant les résultas des
instructions qui viennent d’être
exécuter. Chaque bit de ce
registre indique une condition
donnée, Après chaque
opération réalisée par l’UAL.
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Registre d’état (flags):

CF : indicateur de retenue 1 : si une opération sur 8 ou 16 bits


(carry) ; généré une retenue
0 : Si non
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Registre d’état (flags):

PF : indicateur de parité ; 1 : si le nombre de 1 est pair dans un


mot de 8/16 bits
0 : si non
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Registre d’état (flags):

AF : indicateur de retenue auxiliaire 1 : si une opération sur 8 ou 16 bits


généré une demi retenue
0 : Si non
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Unité de décodage :
 Registre d’état (flags):

ZF : indicateur de zéro ; 1 : si le contenu d’un registre est nul


0 : si non
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Unité de décodage :
 Registre d’état (flags):

SF : indicateur de signe ; 1 : si le contenu d’un registre est


négatif
0 : si non
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Unité de décodage :
 Registre d’état (flags):

OF : indicateur de 1 : si l’opération sur 8/16 bits à produit un


dépassement (overflow) dépassement de capacité
0 : si non
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Registre d’état (flags):
 L’état de ces bits peut être testé par certaine
instruction du 8086.
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Registre d’état (flags):

TF : indicateur d’exécution 1 : exécution pas à pas


pas à pas. 0 : si non
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Registre d’état (flags):

IF : indicateur 1 : interruption masquée (inhibé)


d’autorisation 0 : interruption autorisée
d’interruption
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Registre d’état (flags):

DF : indicateur de 1 : incrémentation de l’index


décrémentation (direction) 0 : décrémentation de l’index
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Les registres généraux :
 l’UE possède 4 registres sur 16,
 Utilisables pour stocker des
opérandes lors d’opérations
logiques ou arithmétiques
(entières) des opérandes pour
des calculs d’adresses des
pointeurs vers la mémoire.
 Certaines instructions imposent
les registres à utiliser
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Les registres généraux :
AX = (AH, AL); Accumulator ;
Accumulateur ou valeur de retour de
fonction, est un registre important
de l’UAL puisque c’est avec lui que
sont réalisé la plupart des
opérations arithmétiques (MUL,
DIV, INC).
Le registre AX sert souvent de registre
d'entrée-sortie : on lui donne des
paramètres avant d'appeler une
fonction ou une procédure.
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Les registres généraux :
 BX = (BH, BL); Base
register,
 sert à pointer sur une
adresse mémoire.
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Les registres généraux :
 CX = (CH, CL);Counter
ce registre est utilisé
comme compteur dans
les boucles.
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Les registres généraux :
 DX = (DH, DL). Data register,
pointeur pour entrées/sorties Le
registre DX contient souvent
l'adresse d'un tampon de données
lorsqu'on appelle une fonction du
DOS.
 Par exemple, pour écrire une
chaîne de caractères à l'écran, il
faut placer l’offset de cette chaîne
dans DX avant d'appeler la
fonction appropriée.
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Les registres généraux :
 Ils peuvent être également considérés comme 8
registres sur 8 bits (H pour higt et L pour low). 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.
Architecture du Microprocesseur Intel 8086 :

 Organisation interne du 8086


 Les registres généraux :
 Sur un processeur relativement récent, AX, BX, CX, DX ne
sont en fait que les parties basses de registres de 32 bits
nommés EAX, EBX, ECX, EDX (« E » pour « Extended »).
 On a donc un moyen plus pratique de stocker les grands
nombres. En fait, chaque registre (pas seulement les registres
généraux) peut contenir 32 bits.
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Registres pointeurs et d’indexes :
 Pointeurs

SP : Stack Pointer, pointeur de pile


pointe sur le sommet de la pile qui est une zone
de sauvegarde de données en cours d’exécution
d’un programme, les données ne peuvent être
ajouté ou retiré qu’à partir de son sommet,
l’élément retenais est le dernier élément ajouter,
cette structure de donnée est appelé LIFO last in
ferst out). Son contenu est automatiquement
géré par les instructions PUSH et POP
Architecture du Microprocesseur Intel 8086 :

 Organisation interne du 8086


 Registres pointeurs et
d’indexes :
 Pointeurs

BP : Base Pointer, pointeur de base,


utilisé pour adresser des données sur
la pile.
Architecture du Microprocesseur Intel 8086 :

 Organisation interne du 8086


 Registres pointeurs et
d’indexes :
 Index :

SI : Source Index ; pointer pour


adresser de mots de données se trouve
dans DS. Il est très utilisé avec les
instructions de traitement de chaîne.
Architecture du Microprocesseur Intel 8086 :

 Organisation interne du 8086


 Registres pointeurs et
d’indexes :
 Index :

DI : Destination Index. Pointer


pour adresser de mots de
données se trouve dans ES.
Architecture du Microprocesseur Intel 8086 :

 Organisation interne du 8086


 Registres pointeurs et
d’indexes :
 Index :

DI : Destination Index. Pointer


pour adresser de mots de
données se trouve dans ES.
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 L’unité d’interface de bus
cette unité effectue la recherche
des instructions en mémoire et les
range dans une file d’attente ; elle
contient :
 Pointer d’instruction : IP ;
 file d’attente des instructions (6
octets) ;
 Registres de segment (ES, CS, DS et
SS) 4 registres sur 4 bits;
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 L’unité d’interface de bus
 Pointer d’instruction : IP ;
Contient l’adresse sur 16 bits de la prochaine
instruction à exécuter,
il est mis jour après chaque exécution d’une
instruction.
On appelle la valeur contenue dans IP offset.
Car elle doit être ajoutée à l’adresse de début
de segment de code pour obtenir l’adresse
physique réel de l’instruction :
Architecture du Microprocesseur Intel 8086 :

 Organisation interne du 8086


 L’unité d’interface de bus
 Pointer d’instruction : IP ;

On peut changer la valeur de IP seulement avec


les instructions tel que : JMP, INT, CALL. Quand
le EU (Execution Unit) exécute une telle
instruction (JMP, INT, CALL),
Architecture du Microprocesseur Intel 8086 :

 Organisation interne du 8086


 L’unité d’interface de bus
 File d’attente des instructions (6
octets) ;
Le 8086 dispose d’une mémoire de six octets
permettant de stocker les instructions en attente
d’exécution.
Cette technique permet d’augmenter les
performances du système.
Architecture du Microprocesseur Intel 8086 :

 Organisation interne du 8086


 L’unité d’interface de bus
 Registres de segment

Le 8086 dispose de quatre registres de


déplacement. ces registres, associés aux
pointeurs et aux index, permettent au
microprocesseur d’adresser l’ensemble de la
mémoire.
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Registres de segment

 CS : Code Segment (segment de code)


pointe vers les instructions du programme.
 DS : Data Segment (segment de
données) pointe vers les données du programme
 ES : Extra Segment (segment
supplémentaire de données) pointe vers les
données du programme multi-segments
 SS : Stack Segment (segment de pile)
pointe vers la pile programme
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Gestion de la mémoire par le 8086 :
L'espace mémoire adressable
1 méga = 220 bits du bus d'adresse
et comme la longueur d’instruction ne peut
avoir des adresses que sur 16 bits et non
sur 20 bits. La mémoire est divisée en
segments (pages).
Un segment est zone mémoire de
216 =65 536 octets consécutifs (64 Ko)
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Gestion de la mémoire par le 8086 :
 Pour désigner une case mémoire parmi les 216 = 65 536
contenues dans un segment, il suffit d’une valeur sur 16
bits. Ce déplacement (ou offset) spécifie un octet
particulier dans un segment.
 Ainsi, 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.
 Cette méthode de gestion de la mémoire est appelée
segmentation de la mémoire.
Architecture du Microprocesseur Intel 8086 :

 Organisation interne du 8086


 Gestion de la mémoire par le 8086 :

 La donnée d’un couple (segment,


offset) définit une adresse
logique, notée sous la forme
segment : offset.
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Gestion de la mémoire par le 8086 :
 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.
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Gestion de la mémoire par le 8086 :
 Correspondance entre adresse logique
et adresse physique :
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Gestion de la mémoire par le 8086 :
 Le registre CS est associé au pointeur
d’instruction IP, ainsi la prochaine
instruction à exécuter se trouve à
l’adresse logique CS : IP.
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Gestion de la mémoire par le 8086 :
 Remarque : les segments ne sont pas nécessairement distincts les uns
des autres, ils peuvent se chevaucher ou se recouvrir complètement.
Architecture du Microprocesseur Intel 8086 :
 Organisation interne du 8086
 Gestion de la mémoire par le 8086 :
 Contenu des registres après un RESET du microprocesseur :
 IP = 0000H
la première instruction exécutée par le 8086 se trouve
 CS = FFFFH donc à l’adresse logique (CS:IP) FFFFH : 0000H,
 DS = 0000H correspondant à l’adresse physique FFFF0H (bootstrap).
Cette instruction est généralement un saut vers le
 ES = 0000H
programme principal qui initialise ensuite les autres
 SS = 0000H registres de segment.
Architecture du Microprocesseur Intel 8086 :
 La programmation en assembleur du microprocesseur 8086
 Chaque microprocesseur reconnaît un ensemble d’instructions appelé jeu
d’instructions (Instruction Set) fixé par le constructeur.
 le nombre d’instructions reconnues varie entre 75 et 150
(microprocesseurs CISC : Complex Instruction Set Computer).
 Il existe aussi des microprocesseurs dont le nombre d’instructions
est très réduit (microprocesseurs RISC : Reduced Instruction Set
Computer) : entre 10 et 30 instructions, permettant d’améliorer le
temps d’exécution des programmes.
Architecture du Microprocesseur Intel 8086 :
 La programmation en assembleur du microprocesseur 8086
 Les instructions et leurs opérandes (paramètres) sont stockés en mémoire principale.
 La taille totale d’une instruction (nombre de bits nécessaires pour la représenter en
mémoire) dépend du type d’instruction et aussi du type d’opérande.
 Chaque instruction est toujours codée sur un nombre entier d’octets, afin de faciliter
son décodage par le processeur.
 Une instruction est composée de deux champs :
 le code opération, qui indique au processeur quelle opération réaliser ;
 le champ opérande qui contient la donnée, ou la référence à une donnée en mémoire (son
adresse).
Architecture du Microprocesseur Intel 8086 :
 La programmation en assembleur du microprocesseur 8086
 Afin de pouvoir écrire (et relire) des programmes en langage machine, on utilise donc
une notation symbolique pour représenter les instructions : les mnémoniques.
Un programme constitué de mnémoniques est appelé programme en assembleur.

Adresse Contenu MP Langage Symbolique Explication en francais


0100 A1 01 10 MOV AX, [0110] Charger AX avec le contenu de 0110.
0103 03 06 01 12 ADD AX, [0112] Ajouter le contenu de 0112
a AX (résultat dans AX).
0107 A3 01 14 MOV [0114], AX Ranger AX en 0114
Architecture du Microprocesseur Intel 8086 :
 La programmation en assembleur du microprocesseur 8086
 Syntaxe
étiquette : opération opérande ; commentaire
Exemple:
CALC: MOV CX,7 ; définir le compteur
Architecture du Microprocesseur Intel 8086 :
 La programmation en assembleur du microprocesseur 8086
 Syntaxe
 Champ d’étiquette
 définition d’un symbole dont le nom est la chaîne de caractères du champ
d’étiquette :
 max 31 caractères {A..Z} {a..z} {0..9} {.?@_$},
 {0..9} défendu comme 1er caractère,
 “.” uniquement permis comme 1er caractère,
 pas de distinction entre minuscules et majuscules,
 terminaison par “:”
Architecture du Microprocesseur Intel 8086 :
 La programmation en assembleur du microprocesseur 8086
 Syntaxe
 Champ d’opération
 opération à effectuer, indiquée à l’aide d’un “mnémonique” ;
Architecture du Microprocesseur Intel 8086 :
 La programmation en assembleur du microprocesseur 8086
 Syntaxe
 Champ d’opérande
 argument(s) pour l'opération :
 le champ d’opérande se décompose en sous-champs séparés de
virgules (suivies comme option d’un ou plusieurs caractères “white
space”) :
 le sous-champs décrivant l’opérande-destination précède celui
décrivant l’opérande source,
opération destination,source
Architecture du Microprocesseur Intel 8086 :
 La programmation en assembleur du microprocesseur 8086
 Syntaxe
 Champ d’opérande
 argument(s) pour l'opération :
 le champ d’opérande se décompose en sous-champs séparés de
virgules (suivies comme option d’un ou plusieurs caractères “white
space”) :
 le sous-champs décrivant l’opérande-destination précède celui
décrivant l’opérande source,
opération destination,source
Architecture du Microprocesseur Intel 8086 :
 La programmation en assembleur du microprocesseur 8086
 Syntaxe
 Champ de commentaire
 texte explicatif :
 champ sans signification syntaxique et sémantique pour
l’assembleur; chaîne de caractères terminée par la fin de l’instruction
(= fin de ligne)
Architecture du Microprocesseur Intel 8086 :
 La programmation en assembleur du microprocesseur 8086
 Les instructions peuvent être rassemblées en plusieurs groupes :
 instructions de transfert de données (Mouvement de données);
 Instructions logiques (opérations logiques);
 Instructions de branchement ;
 Instructions de branchements conditionnels ;
 instructions arithmétiques (opérations arithmétiques) ;
 Instructions sur les chaînes ;
 Instructions de contrôle du processeur ;
 Instructions d’entré/sortie.
Architecture du Microprocesseur Intel 8086 :
 Les instructions de transfert
 Elles
permettent de d´eplacer des données d’une source vers
une destination :

registre vers mémoire ;


registre vers registre ;
mémoire vers registre.
Architecture du Microprocesseur Intel 8086 :
 Les instructions de transfert
 Remarque : le microprocesseur 8086 n’autorise pas les
transferts de mémoire vers mémoire
(pour ce faire, il faut passer par un registre
intermédiaire).
Architecture du Microprocesseur Intel 8086 :
Il existe différentes façons de spécifier l’adresse d’une
case mémoire dans une instruction : ce sont les modes
d’adressage.
Architecture du Microprocesseur Intel 8086 :
 Le microprocesseur 8086/88 possède sept modes d’adressage :
1. Mode d’adressage immédiat.
2. Mode d’adressage registre
3. Mode d’adressage direct
4. Mode d’adressage registre indirect
5. Mode d’adressage basé
6. Mode d’adressage indexé
7. Mode d’adressage basé et indexé
Architecture du Microprocesseur Intel 8086 :

1 Mode d’adressage immédiat.


Dans le mode d’adressage immédiat, l’opérande source
est une donnée sur 8 ou 16 bits. L’exécution d’une
telle instruction est très rapide.
 Exemples :

MOV CX,500H ; dans CX=0000 0101 0000 0000 =0500H


MOV AX, -40H ; dans AX=1111 1111 1100 0000 =FFC0H
Architecture du Microprocesseur Intel 8086 :

2 Mode d’adressage registre.


Dans le mode d’adressage registre, l’opérande à utiliser
est contenu dans un des registres généraux du CPU ( 8
bits ou 16 bits ).
La longueur de l‘opérande source et l’opérande destination
doivent être identiques.
 Exemples :
MOV AX,BX
MOV AL,BL
Architecture du Microprocesseur Intel 8086 :

3 Mode d’adressage direct.


Le mode d’adressage direct spécifie complètement dans l’instruction
l’emplacement mémoire qui contient l’opérande. Dans ce type
d’adressage, l’adresse est directement ajoutée au contenu du registre
segment DS (multiplié par 16) four former l’adresse physique.
Exemple :
MOV AX,COMPTE ; COMPTE est une variable déjà déclarée
Dans cette instruction, le contenu des cases mémoire dont l’adresse est
pointée par DS :COMPTE et DS :COMPTE+1 sera transféré dans AX.
Architecture du Microprocesseur Intel 8086 :

4 Mode d’adressage registre indirect.


Dans le mode d‘adressage registre indirect, l’adresse n’est pas donnée dans
l’instruction mais elle se trouve dans un registre intermédiaire qu’il faudrait
évidemment charger au préalable par la bonne adresse.
Exemple : MOV BX, offset COMPTE
MOV AX,[BX]
La première instruction signifie qu’on a mis dans le registre BX, l’offset de la
variable COMPTE.
La deuxième instruction signifie qu’on a charger le registre AX par le contenu de
la case mémoire dont l’adresse se trouve pointée par le registre BX, (qui est
l’offset de COMPTE).
Architecture du Microprocesseur Intel 8086 :

5 adressage basé :
l’offset est contenu dans un registre de base BX ou BP.
 Exemples :

mov al,[bx] : transfére la donnée dont l’offset est contenu dans le


registre de base BX vers le registre AL. Le segment associé par défaut
au registre BX est le segment de données : on dit que l’adressage est
basé sur DS;
mov al,[bp] : le segment par défaut associé au registre de base BP est
le segment de pile. Dans ce cas, l’adressage est basé sur SS.
Architecture du Microprocesseur Intel 8086 :

5 adressage basé :
mov al,[bx] mov al,[bp]
Architecture du Microprocesseur Intel 8086 :

6 adressage indexé :
Semblable à l’adressage basé, sauf que l’offset est contenu dans un registre d’index SI
ou DI, associés par d´efaut au segment de données DS.
Exemples :
mov al,[si] : charge le registre AL avec le contenu de la case mémoire dont l’offset est
contenu dans SI ;
mov [di],bx : charge les cases mémoire d’offset DI et DI + 1 avec le contenu du
registre BX.
Architecture du Microprocesseur Intel 8086 :

 Remarque :
une valeur constante peut éventuellement être ajoutée aux registres de base ou
d’index pour obtenir l’offset.
Exemple :
mov [si+100H],ax
qui peut aussi s'écrire
mov [si][100H],ax
ou encore
mov 100H[si],ax
Architecture du Microprocesseur Intel 8086 :

7 Mode d’adressage base indexé.


Dans le mode d’adressage base indexé, l’adresse effective est la somme de trois
composantes : le registre de base, le registre index et un déplacement ou un label.
Exemple :
mov ah,[bx+si+100H]
Architecture du Microprocesseur Intel 8086 :

 Les instructions de transfert


Syntaxe : MOV destination,source
Remarque : MOV est l’abbréviation du verbe « to
move » : d´eplacer.
Architecture du Microprocesseur Intel 8086 :

 Exemples de modes d’adressage simples :


mov ax,bx : charge le contenu du registre BX dans le
registre AX.
Le transfert se fait de registre à registre : adressage
par registre ;
Architecture du Microprocesseur Intel 8086 :

 Exemples de modes d’adressage simples :


mov al,12H : charge le registre AL avec la valeur 12H.
La donnée est fournie immédiatement avec l’instruction :
adressage immédiat.
Architecture du Microprocesseur Intel 8086 :

 Exemples de modes d’adressage simples :


mov bl,[1200H] : transfère le contenu de la
case mémoire d’adresse effective (offset)
1200H vers le registre BL.
L’instruction comporte l’adresse de la case
mémoire ou se trouve la donnée : adressage
direct.
L’adresse effective représente l’offset de la
case mémoire dans le segment de données
(segment dont l’adresse est contenue dans le
registre DS) : segment par d´efaut
Architecture du Microprocesseur Intel 8086 :

 Exemples de modes d’adressage


simples :
On peut changer le segment lors d’un adressage
direct en ajoutant un préfixe de segment,
exemple : mov bl,es :[1200H].
On parle alors de forçage de segment.
Architecture du Microprocesseur Intel 8086 :

 Remarque : dans le cas de l’adressage immédiat de la


mémoire, il faut indiquer le format de la donnée :
octet ou mot (2 octets) car le microprocesseur 8086 peut
manipuler des données sur 8 bits ou 16 bits.
Pour cela, on doit utiliser un spécificateur de format :
 mov byte ptr [1100H],65H : transf`ere la valeur 65H (sur 1
octet) dans la case mémoire d’offset 1100H ;
 mov word ptr [1100H],65H : transfère la valeur 0065H (sur 2
octets) dans les cases mémoire d’offset 1100H et 1101H.
Architecture du Microprocesseur Intel 8086 :

 Remarque : les microprocesseurs Intel rangent l’octet de


poids faible d’une donnée sur plusieurs octets à l’adresse la
plus basse (format Little Endian).
Architecture du Microprocesseur Intel 8086 :

 Les instructions logiques


Ce sont des instructions qui permettent de manipuler des données
au niveau des bits. Les opérations logiques de base sont :
 ET;
 OU;
 OU exclusif ;
 complément à 1;
 complément à 2;
 décalages et rotations.
Les différents modes d’adressage sont disponibles.
Architecture du Microprocesseur Intel 8086 :

 ET logique :
AND opérande1,opérande2
L’opération effectuée est : opérande1 ← opérande1 ET
opérande2.
 Exemple :

Application : masquage de bits pour mettre à zéro certains bits dans un


mot.
Architecture du Microprocesseur Intel 8086 :

 OU logique :
OR opérande1,opérande2
L’opération effectuée est : opérande1 ← opérande1 OU
opérande2.
Application : mise à 1 d’un ou plusieurs bits dans un mot.
Exemple : dans le mot 10110001B on veut mettre à 1 les
bits 1 et 3 sans modifier les autres bits.
Architecture du Microprocesseur Intel 8086 :

 OU logique :
OR opérande1,opérande2
Les instructions correspondantes peuvent s’´ecrire :
mov ah,10110001B
or ah,00001010B
Architecture du Microprocesseur Intel 8086 :

 Complément à 1 :
NOT opérande
L’opération effectuée est : opérande ← opérande.
 Exemple :

mov al,10010001B
not al
Architecture du Microprocesseur Intel 8086 :

 Complément à 2 :
NEG opérande
L’opération effectuée est : opérande ← opérande + 1.
 Exemple :
mov al,25
mov bl,12
neg bl
add al,bl
Architecture du Microprocesseur Intel 8086 :

 OU exclusif :
XOR opérande1,opérande2
L’opération effectuée est : opérande1 ← opérande1 ⊕
opérande2.
 Exemple : mise à zéro d’un registre :

mov al,25
xor al,al
Architecture du Microprocesseur Intel 8086 :

 OU exclusif :
XOR opérande1,opérande2
L’opération effectuée est : opérande1 ← opérande1 ⊕
opérande2.
 Exemple : mise à zéro d’un registre :

mov al,25
xor al,al
Architecture du Microprocesseur Intel 8086 :

 Instructions de décalages et de rotations :


ces instructions déplacent d’un certain nombre de positions
les bits d’un mot vers la gauche ou vers la droite.
Dans les décalages, les bits qui sont d´eplacés sont
remplacés par des zéros.
Il y a les décalages logiques (opérations non signées) et les
décalages arithmétiques (opérations signées).
Architecture du Microprocesseur Intel 8086 :
Décalage logique vers la droite (Shift Right) :
SHR opérande,n
Cette instruction décale l’opérande de n positions vers la
droite.
Elle entre un 0 à la place du bit de poids fort ; le bit sortant passe à
travers l’indicateur de retenue CF.
 Exemple :
mov al,11001011B
shr al,1
Architecture du Microprocesseur Intel 8086 :

Remarque :
si le nombre de bits à décaler est supérieur à 1, ce nombre doit etre
placé dans le registre CL ou CX.

Exemple :
décalage de AL de trois positions vers la droite :
mov cl,3
shr al,cl
Architecture du Microprocesseur Intel 8086 :
 Décalage logique vers la gauche (Shift Left) :
SHL opérande,n
Cette instruction décale l’opérande de n positions vers la droite.
entrée un 0 à la place du bit de poids faible ; le bit sortant
passe à travers l’indicateur de retenue CF.
Exemple :
mov al,11001011B
shl al,1
Architecture du Microprocesseur Intel 8086 :
 Même remarque que précédamment si le nombre de
positions à décaler est supérieur à 1.
Architecture du Microprocesseur Intel 8086 :
 Décalage arithmétique vers la droite :
SAR opérande,n
Ce décalage conserve le bit de signe bien que celui-ci soit
décalé
le bit de signe est réinjecté.
 Exemple :
mov al,11001011B
sar al,1
Architecture du Microprocesseur Intel 8086 :
 Décalage arithmétique vers la gauche :
SAR opérande,n
Identique au décalage logique vers la gauche.
Architecture du Microprocesseur Intel 8086 :
 Exemple

multiplication ou division par une puissance de 2 :


 un décalage à droite revient à faire une division par 2
 un décalage à gauche, une multiplication par 2.
 Exemple :
mov al,48
mov cl,3 → AL = 48/23 = 6
shr al,cl
Architecture du Microprocesseur Intel 8086 :
 Rotation à droite (Rotate Right) :
ROR opérande,n
Cette instruction décale l’opérande de n positions vers la
droite et réinjecte par la gauche les bits sortant qui est
copié dans l’indicateur de retenue CF..
 Exemple :

mov al,11001011B
ror al,1
Architecture du Microprocesseur Intel 8086 :
 Rotation à gauche (Rotate Left) :
ROL opérande,n
Cette instruction décale l’opérande de n positions vers la
gauche et réinjecte par la droite les bits sortant.
 Exemple :

mov al,11001011B
rol al,1
Architecture du Microprocesseur Intel 8086 :
 Rotation à droite avec passage par l’indicateur de retenue
(Rotate Right through Carry) :
RCR opérande,n
Cette instruction décale l’opérande de n positions vers la droite
en passant par l’indicateur de retenue CF.
 Exemple :

mov al,11001011B
rcr al,1
Architecture du Microprocesseur Intel 8086 :
 Rotation à gauche avec passage par l’indicateur de
retenue (Rotate Left through Carry) :
RCL opérande,n
Cette instruction décale l’opérande de n positions vers la
gauche en passant par l’indicateur de retenue CF.
 Exemple :

mov al,11001011B
rcl al,1
Architecture du Microprocesseur Intel 8086 :
 Les instructions de branchement :
 saut inconditionnel ;
 sauts conditionnels ;

 appel de sous-programmes.
Architecture du Microprocesseur Intel 8086 :
 Les instructions de branchement :
 Saut inconditionnel : JMP label sauts conditionnels ;

 l’instruction JMP ajoute au registre IP (pointeur d’instruction) le


nombre d’octets (distance) qui sépare l’instruction de saut de sa
destination. Pour un saut en arrière, la distance est négative
(codée en complément à 2)
Architecture du Microprocesseur Intel 8086 :
 Les instructions de branchement :
Saut inconditionnel : JMP label sauts conditionnels ;
boucle : inc ax
dec bx ; boucle infinie
jmp boucle
Architecture du Microprocesseur Intel 8086 :
 Les instructions de branchement :
 Instructions de sauts conditionnels : J condition
label
 Un saut conditionnel n’est exécuté que si une certaine condition
est satisfaite, sinon l’exécution se poursuit séquentiellement à
l’instruction suivante.
 La condition du saut porte sur l’état de l’un (ou plusieurs) des
indicateurs d’état (flags) du microprocesseur :
Architecture du Microprocesseur Intel 8086 :
 Les instructions de branchement :
 Instructions de sauts conditionnels : Jcondition label

CMP AL, 'A'


JE suite ; Si l'octet lu est un 'A' on va à suite, sinon ...
..... ; on poursuit en séquence
suite:
.....
Architecture du Microprocesseur Intel 8086 :
 Les instructions de branchement :
 Instructions de sauts conditionnels : Jcondition label
Architecture du Microprocesseur Intel 8086 :
 Les instructions de branchement :
 Exemple d’application des instructions de sauts
conditionnels : on veut additionner deux nombres
signés N1 et N2 se trouvant respectivement aux
offsets 1100H et 1101H. Le résultat est rangé à
l’offset 1102H s’il est positif, à l’offset 1103H s’il est
négatif et à l’offset 1104H s’il est nul :
Architecture du Microprocesseur Intel 8086 :
 Les instructions de branchement :Programme
Organigramme mov al,[1100H]
add al,[1101H]
js negatif
jz nul
mov [1102H],al
jmp fin
negatif : mov [1103H],al
jmp fin
nul : mov [1104H],al
fin : hlt
Architecture du Microprocesseur Intel 8086 :
 Instructions d’appel de sous programme :
 Appel de sous-programmes : pour éviter la répétition d’une
même séquence d’instructions plusieurs fois dans un programme,
on rédige la séquence une seule fois en lui attribuant un nom
(au choix) et on l’appelle lorsqu’on en a besoin. Le programme
appelant est le programme principal. La séquence appelée est
un sous-programme ou procédure.
Architecture du Microprocesseur Intel 8086 :
 Instructions d’appel de sous programme :
 Ecriture d’un sous-programme :
Architecture du Microprocesseur Intel 8086 :
 Instructions d’appel de sous programme :
 Remarque : une procédure peut être de type
 NEAR si elle se trouve dans le même segment
 FAR si elle se trouve dans un autre segment.

 ss prog1 PROC NEAR


 ss prog2 PROC FAR
Architecture du Microprocesseur Intel 8086 :
 Appel d’une procédure : CALL nom de la procédure

 L'appel d'un sous-programme se fait par CALL label


de sous-programme.
Architecture du Microprocesseur Intel 8086 :
 Appel d’une procédure : CALL nom de la procédure
 Lors de l’exécution de l’instruction CALL,
 le pointeur d’instruction IP est chargé avec l’adresse de la
première instruction du sous-programme. l’adresse de retour
au programme principal, doit etre sauvegardée dans la pile
 Lors du retour au programme appelant parl’exécution de
l’instruction RET, l’adresse de retour au programme principal est
rechargée dans IP à partir de la pile, c a d l’instruction suivant
le CALL doit être exécutée,
Architecture du Microprocesseur Intel 8086 :
 Les instructions de contrôles d’itérations :
 Appel d’une procédure : CALL nom de la procédure
Architecture du Microprocesseur Intel 8086 :
 Les instructions de traitement des chaînes :
 Préfixes de répétition :
 Répétition tant que CX n’est pas nul : REP instruction de chaîne
(Repeat String Operation)
REP est utilise avec les instructions MOVS, STOS, INS ou OUTS
 Exemple :
MOV CX, Taille_Buffer
CLD
REP MOVS
Architecture du Microprocesseur Intel 8086 :
 Les instructions de traitement des chaînes :
 Préfixes de répétition :
 Répétition tant que CX n’est pas nul : REP instruction de chaîne
(Repeat String Operation)
REP est utilise avec les instructions MOVS, STOS, INS ou OUTS
 Exemple :
MOV CX, Taille_Buffer
CLD
REP MOVS
Architecture du Microprocesseur Intel 8086 :
 Les instructions de traitement des chaînes :
 Préfixes de répétition :
 Répétition tant qu’il y a égalité et que CX n’est pas nul
REPE Repeat Equal ou REPZ Repeat Zero
 Répétition tant qu’il y a égalité et que CX n’est pas nul
Architecture du Microprocesseur Intel 8086 :
 Les instructions de traitement des chaînes :
 Préfixes de répétition :
 Répétition tant qu’il n’y a pas égalité et que CX n’est pas nul REPNE
ou REPNZ Repeat Not Equal / Repeat Not Zero

 Répétition tant qu’il n’y a pas égalité et que CX n’est


pas nul
Architecture du Microprocesseur Intel 8086 :
 Les instructions de traitement des chaînes :
 Instructions
Déplacement de blocs d’octets ou de mots : MOVS Move String (Byte
or Word)
Transfère le contenu de la mémoire adressée par [DS : SI] dans la
mémoire adressée par [ES :DI]. Selon la position de l'indicateur [DF],
l'instruction provoque une incrémentation ou une décrémentation
Architecture du Microprocesseur Intel 8086 :
 Les instructions de traitement des chaînes :
 Instructions
Déplacement de blocs d’octets ou de mots : MOVS Move String (Byte or Word)
 Exemple :
cld
mov CX,05
mov DI, offset TAB-D
mov SI, offset TAB-S
Encore :
movs rep movs
dec CX
jne Encore
Architecture du Microprocesseur Intel 8086 :
 Les instructions de traitement des chaînes :
 Instructions
Déplacement de blocs d’octets ou de mots : MOVS Move String (Byte
or Word)
 MOVSB est destine a traiter un octet.
MOVSW est destine a traiter un mot (type word) complet.
MOVSD est destine a traiter un double mot.
Architecture du Microprocesseur Intel 8086 :
 Les instructions de traitement des chaînes :
 Instructions
Comparaison de blocs d’octets ou de mots CMPS chaîne 1, chaîne 2
(Compare String (Byte, Word or Doubleword))
Compare des chaînes de caractères stockées en mémoire :
La première chaîne doit se trouver a l'adresse [ES:DI]
La seconde chaîne doit se trouver a l'adresse [DS:SI]
L’instruction incrémente ou décrémente SI et DI suivant la valeur de DF
Architecture du Microprocesseur Intel 8086 :
 Les instructions de traitement des chaînes :
 Instructions
Transfert d’un octet ou d’un mot dans AL ou AX : LODS Load String
(Byte, Word or Double)
Tranfert d’un octet ou d’un mot de la mémoire d'adresse [DS : SI] dans
AL ou AX
Selon la position de [DF], l'instruction provoque une incrémentation de
[SI] ou une décrémentation de [SI]
Architecture du Microprocesseur Intel 8086 :
 Les instructions de contrôles d’itérations :
 Bouclage tan que CX≠0: LOOP
LOOP nécessite l'emploi de CX comme compteur. A chaque tour de boucle,
CX est automatiquement décrémenté. Si, après décrémentation, CX est nul,
on sort de la boucle.
Exemple :
MOV CX, NbDeTours
Boucle:
... ; corps de boucle
LOOP Boucle
Architecture du Microprocesseur Intel 8086 :
 Les instructions de contrôles d’itérations :
 Bouclage tan que CX≠0: LOOP
 LOOPE ou LOOPZ

Bouclage tant que CX = 0 et ZF = 1 (égalité)


 LOOPNE ou LOOPNZ

Bouclage tant que CX = 0 et ZF = 0 (inégalité)


Architecture du Microprocesseur Intel 8086 :
 Les interruptions
 Il y a deux méthodes possibles pour recevoir les
données provenant des périphériques
 Scrutation périodique (ou polling)
 Interruption :
Architecture du Microprocesseur Intel 8086 :
 Les interruptions
 Scrutation périodique (ou polling)
le programme principal contient des instructions qui lisent
cycliquement l’état des ports d’E/S.
 Avantage : facilité de programmation.
 Inconvénients :
 perte de temps s’il y a de nombreux périphériques à interroger ;
 de nouvelles données ne sont pas toujours présentes ;
 des données peuvent être perdues si elles changent rapidement.
Architecture du Microprocesseur Intel 8086 :
Les interruptions

 lorsqu’une donnée apparaît sur un périphérique, le circuit d’E/S le
signale au microprocesseur pour que celui-ci effectue la lecture de la
donnée : c’est une demande d’interruption (IRQ : Interrupt Request) :
 Avantage : le microprocesseur effectue une lecture des ports d’E/S
seulement lorsqu’une donnée est disponible, ce qui permet de
gagner du temps et d’éviter de perdre des données.
 Exemples de périphériques utilisant les interruptions :
 Clavier : demande d’interruption lorsqu’une touche est enfoncée ;
 Port série : demande d’interruption lors de l’arrivée d’un caractère sur la ligne
de transmission.
Architecture du Microprocesseur Intel 8086 :
 Les interruptions
 Le microprocesseur 8086 peut gérer jusqu’a 256 interruptions. Chaque
interruption reçoit un numéro compris entre 0 et 255 appelé type de
l’interruption.
Trois sortes d’interruptions sont reconnues par le 8086 :
 interruptions matérielles produites par l’activation des lignes INTR et NMI du
microprocesseur ;
 interruptions logicielles produites par l’instruction INT n, ou n est le type de
l’interruption;
 interruptions processeur générées par le microprocesseur en cas de
dépassement, de division par zéro ou lors de l’exécution pas à pas d’un
programme.
Architecture du Microprocesseur Intel 8086 :
 Les interruptions
 Les interruptions du 8086 sont
vectorisées. La table des
vecteurs d’interruptions doit
obligatoirement commencer à
l’adresse physique 00000H
dans la mémoire centrale.
Chaque vecteur d’interruption
est constitué de 4 octets
représentant une adresse
logique du type CS : IP.
Architecture du Microprocesseur Intel 8086 :
Architecture du Microprocesseur Intel 8086 :
 Les interruptions
 Retour d’une interruption : IRET (Interrupt Return)
IRET est l'instruction de retour d'une interruption, elle
termine toute procédure d’interruption (HARD ou
Soft): IRET, retire de la pile les données sauvegardées
par l'instruction INT (le contenu de [CS:IP], et le
registre des indicateurs) puis rend la main au
programme.