Académique Documents
Professionnel Documents
Culture Documents
FACULTÉ DE T ECHNOLOGIE
Novembre 2020
Table des matières
I Première Partie
1 Registres et mémoires à semi-conducteurs . . . . . . . . . . . . . 9
1.1 C’est quoi un système à microprocesseur ? 9
1.2 Registres 9
1.2.1 Type de registres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.2 Circuits intégrés de décalage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3 Mémoires 12
1.3.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.2 Temps d’accès d’une mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4 Classification des mémoires 13
1.4.1 Mémoire à semi-conducteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4.2 Mémoire centrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.3 Structure interne d’une ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.4 Chronogramme de lecture d’une ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.5 Structure interne d’une RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.6 Chronogramme de lecture/d’écriture d’une RAM . . . . . . . . . . . . . . . . . . 15
1.5 Assemblage de boîtiers mémoire 15
1.5.1 Augmentation de l’espace d’adressage (nombre des mots) . . . . . . . . . 16
1.5.2 Augmentation de la longueur de mot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.6 Réalisation du plan mémoire 17
2 Historique et évolution des ordinateurs . . . . . . . . . . . . . . . . . 23
2.1 Historique des ordinateurs 23
2.2 Catégories des ordinateurs 23
2.2.1 Superordinateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.2 Ordinateurs centraux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.3 Mini-ordinateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.4 Micro-ordinateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3 Organisation d’un ordinateur 24
2.3.1 Unité centrale de traitement (Central Processing Unit (CPU)) . . . . . . . . . 24
2.3.2 Mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.3 Unités d’entrée/sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.4 Bus de système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4 Périphériques 25
2.4.1 Périphériques d’entrée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.2 Périphériques de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5 Microprocesseur 26
2.6 Historique des microprocesseurs 27
2.7 Langage assembleur 27
2.8 Architecture de Von Neuman et de Harvard 27
2.8.1 Architecture de Von Neuman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.8.2 Architecture de Harvard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
II Deuxième Partie
3 Étude d’un microprocesseur 8-bit . . . . . . . . . . . . . . . . . . . . . . . 31
3.1 Introduction 31
3.2 Microprocesseur 8-bit 31
3.3 Étude du microprocesseur 8085 31
3.3.1 Architecture externe du 8085 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3.2 Architecture interne du 8085 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3.3 Démultiplexage du bus AD7-AD0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.4 Format d’une instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.5 Taille des instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.6 Mode d’adressage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4 Jeu d’instruction du 8085 37
3.4.1 Instructions de transfert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4.2 Instructions arithmétiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.4.3 Instructions logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.4.4 Opérations logiques supplémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.4.5 Instructions de branchements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.4.6 Instruction de pile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4.7 Instructions de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.5 Op-code et mnémonique des instructions du 8085 50
3.6 Cycle d’exécution d’une instruction 51
3.6.1 Recherche de l’instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.6.2 Décodage de l’instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.6.3 Exécution de l’instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.7 Temps d’exécution d’un instruction 51
I
Première Partie
1.2 Registres
Un registre est un ensemble de mémoire élémentaire (Bascule) qui servent à enregistrer
ou à modifier des combinaisons binaires appelées mots binaires (Ex : 0011, 0010, 1100,
10 Chapitre 1. Registres et mémoires à semi-conducteurs
11110000, 11001100).
Un registre comprend :
— Entrées/Sorties parallèles ;
— Entrées/Sorties séries ;
— Une broche de chargement (Load) ;
— Une broche de décalage (Shift) ;
— Une broche de commande de sortie (Output Enable (OE)) ;
−
— Une broche de sélection du boitier (Chip Select (CS)) ;
— Signal d’horloge (CLK)
Selon l’état des deux broche de commande et de sélection, le registre présente quatre
cas, Haute impédance, Écriture, Lecture et Transparence, comme il est éclairé sur la Figure
1.3.
F IGURE 1.3 – Les quatre modes d’un registre selon les signaux de commande
Registres de mémorisation
Ce sont des circuits intégrés capables de garder en mémoire un octet et de le restituer
en sortie sur demande. Il sont classés selon la méthode de lecture de données à :
1. Registres à écriture parallèle/lecture parallèle (Parallel In Parallel Out (PIPO))
2. Registres à écriture série/lecture série (Serial In Serial Out (SISO))
3. Registres à écriture série/lecture parallèle (Serial In Parallel Out (SIPO))
4. Registres à écriture parallèle/lecture série (Parallel In Serial Out (PISO))
Ces registres sont généralement à base d’une bascule D, qui est elle-même est à base
de portes logiques (les portes logiques sont à base des transistors), cette bascule permet
d’enregistrer un bit, la Figure 1.4 montre comment charger et lire, en série et en parallèle,
de cette bascule.
Registres à décalage
Ce sont des circuits qui transfèrent les données d’une bascule à une autre bit par bit.
— Décalage à droite : Il consiste à faire avancer les bits vers la droite
— Décalage à gauche : Il consiste à faire avancer les bits vers la gauche
— Décalage en anneau ou décalage circulaire (Rotation) : Il consiste à faire tourner les
bits d’un registre vers la gauche ou vers la droite.
La figure 1.6 montre comment effectuer ces différents opérations de décalage.
1.3 Mémoires
1.3.1 Définition
Une mémoire est en quelque sorte l’équivalent de l’empilement de registres dans une
même boîte où un seul de ces registres est appelé à la fois par l’utilisation d’une adresse.
Chaque mémoire a :
✓ Des entrées d’adressage ;
✓ Des entrées/sorties de données ;
✓ Des entrées de contrôle (commande)
La Figure 1.7 montre les signaux d’entrée et/ou de sortie d’une mémoire de m bits par
mot et de n linges, ainsi que sa connexion à un microprocesseur.
Note : Le petit cercle à l’entrée du signal signifie que ce signal est actif en état bas
(actif s’il est égal à "0" binaire).
1.4 Classification des mémoires 13
La mémoire peut être soit à l’intérieur du processeur, sous forme de registres ou sous
forme d’une mémoire, qui est appelée mémoire principale, ou à l’extérieur du processeur,
on l’appelle, mémoire secondaire.
La capacité de mémoire peut s’exprimer en :
• Bit ;
• Octet : 1 octet=8 bits ;
• Kilo-octet (Ko) : 1 Kilo-octet = 1024 octets= 210 octets ;
• Méga-octet (Mo) : 1 Méga-octet = 1024 Ko = 220 octets ;
• Géga-octet (Go) : 1 Géga-octet = 1024 Mo = 230 octets ;
• Téra-octet (To) : 1 Téra-octet = 1024 Go = 240 octets ;
F IGURE 1.10 – Structure interne, adressage et lecture d’une mémoire ROM 4x4 bit
la Figure 1.17.
Exemple 1
Nombre de boîtiers : Pour avoir 8K de case mémoire à partir d’une mémoire de 2K, il
faut mettre 4 boîtier en parallèle.
Alors que pour augmenter la largeur du mot à 8-bit, nous devons mettre en série deux
lignes de 4 boîtier de 4-bit.
11
Logm
2 = 2K = 2 =⇒ m = 11lignes (1.1)
La Figure 1.18 montre le plan mémoire d’une mémoire de 8Ko réalisé par la mise en
1.6 Réalisation du plan mémoire 19
Exemple 2
Dans cet exemple, on va faire la conception d’un système à µP avec un bus d’adresse
16-bit, un bus de données 8-bit, une mémoire ROM de 8Ko et une mémoire RAM de 16Ko.
Les deux boîtiers mémoire (RAM et ROM) qui seront utilisés sont de 4Ko. L’adresse de la
ROM doit être commencé à partir de l’adresse 0000H et l’adresse de la RAM à partir de
l’adresse 8000H (Figure 1.19).
Note : L’espace d’adressage inutilisé entre les deux mémoires permet l’expansion de la
ROM à l’avenir.
Si on néglige le problème de "folding", les adresses mémoire seront calculées en
appliquant la règle suivante :
AF = AD +Cap(θ ) − 1 (1.2)
Tel que :
AF : Adresse de fin ;
AD : Adresse de début ;
Cap(θ )= Capacité d’adresse en octet ;
ROM1 :
AF = AD +Cap(θ ) − 1
20 Chapitre 1. Registres et mémoires à semi-conducteurs
AF = 0000H + 4K − 1
On a 4Ko = 4 ∗ K = 22 ∗ 210 = 212 = (1000000000000)b = (1000)h
AF = 1000H − 1
AF = 0FFFH
ROM2 :
AF = AD +Cap(θ ) − 1
AF = 1000H + 4K − 1
AF = 1000H + 1000H − 1
AF = 1000H + 0FFFH
AF = 1FFFH
RAM1 :
AF = AD +Cap(θ ) − 1
AF = 8000H + 4K − 1
AF = 8000H + 1000H − 1
AF = 8000H + 0FFFH
AF = 8FFFH
RAM2 :
AF = AD +Cap(θ ) − 1
AF = 9000H + 4K − 1
AF = 9000H + 1000H − 1
AF = 9000H + 0FFFH
AF = 9FFFH
RAM3 :
AF = AD +Cap(θ ) − 1
AF = A000H + 4K − 1
AF = A000H + 1000H − 1
AF = A000H + 0FFFH
AF = AFFFH
RAM4 :
AF = AD +Cap(θ ) − 1
AF = B000H + 4K − 1
AF = B000H + 1000H − 1
AF = B000H + 0FFFH
AF = BFFFH
Donc, les plages d’adresses des six mémoires peuvent être résumées comme suit :
1.6 Réalisation du plan mémoire 21
2.2.3 Mini-ordinateurs
Cette catégorie n’est plus tellement significative aujourd’hui, à présent le terme corres-
pond plutôt au systèmes multi-utilisateur en temps réel.
2.2.4 Micro-ordinateurs
Ce sont des ordinateurs de dimensions réduites dont l’unité centrale est constituée
d’un ou de plusieurs microprocesseurs. Un micro-ordinateur est un ordinateur individuel
fonctionne de manière autonome, il peut être classé en quatre groupes, ordinateur person-
nel (Personnel computer (PC)), station de travail (Work station), ordinateur monocarte
(Single-board computer), micro-ordinateur monopuce (Single-chip microcomputer ou
microcontrôlleur).
2.3.2 Mémoire
Il s’agit de l’ensemble des ressources de stockage que l’ordinateur peut employer pour
sauvegarder des informations afin de les réutiliser ultérieurement (Données ou instructions)
2.4 Périphériques
Il y a deux types de périphériques :
F IGURE 2.2 – Connexion des périphériques au microprocesseur via des interface d’en-
trée/sortie
2.5 Microprocesseur
En 1971, la compagnie Intel a réussi à placer tous les transistors qui constituent un
processeur sur un seul circuit intégré donnant ainsi naissance au microprocesseur.
Un processeur est la partie d’un ordinateur qui exécute les instructions et traite les données
des programme.
Les principales caractéristiques d’un microprocesseur sont :
(c) Le nombre de bits : Indique le nombre de bits que le microprocesseur peut traiter
simultanément. Le premier microprocesseur a commencé par 4-bit, actuellement ils
sont à 64-bit.
Exemple :
Exemple :
LDA 2000H Charger le contenu de l’adresse dans l’accumulateur
L’instruction LDA et l’adresse 2000H sont dans la même mémoire pour Von Neuman.
Pour Harvard, LDA est dans la mémoire instructions et 2000H dans la mémoire données.
II
Deuxième Partie
3.1 Introduction
Les microprocesseurs 8-bit utilisent un bus de données 8-bit et un bus d’adresse 16-bit,
qui signifie que leur espace d’adressage est limité à 64Ko. Le premier microprocesseur 8-
bit largement adopté a été le 8080 d’Intel, qui était utilisé dans de nombreux ordinateurs d’
’amateurs de la fin des années 1970 et du début des années 1980. Le Zilog Z80 (Compatible
avec le 8080) et le Motorola 6800 ont également été utilisés dans des ordinateurs similaires,
on peut notamment citer MOSTEK 6502 inspiré du 6800 et du Z80.
Lorsque ces premiers microprocesseurs avaient atteint la limite de leurs performances, les
constructeurs ont fabriqué la nouvelle génération de 8-bit, plus puissante, comme le 6809
de Motorola et le 8085 d’Intel.
d. Signaux d’interruptions
Le 8085 possède cinq signaux d’interruptions :
INTR(Interrupt Request) : C’est le signal envoyé par une interface indiquant une
demande d’interruption.
INTA (Interrupt Aknowlege) : Le 8085 répond à INTR en envoyant "0" sur le signal
INTA.
RST 7.5, RST 6.5 et RST 5.5 : Interruptions de démarrage, ce sont des interruptions
vectorisés qui transfèrent le contrôle à une position mémoire spécifique.
TRAP (Non Maskable Interrupt) : Interruption prioritaire, non masquable.
HOLD et HLDA : Signaux de demande d’accord d’accès direct à la mémoire
(DMA).
READY : Entrée de synchronisation avec la mémoire.
RESET IN : Quand ce signal est à "0", le compteur de programme est remis à "0",
les bus sont en haute impédance et le microprocesseur redémarre.
RESET OUT : Ce signal est utilisé pour redémarrer les circuits connecté au 8085
quand ce dernier est redémarrer.
2. Unité de commande
Elle décode l’instruction à exécuter et génère les séquences de tous les signaux néces-
saires pour l’exécution correcte de l’instruction.
3. Registres
Ils peuvent être classés en trois catégories :
a. Registres généraux
• B, C, D, E, H et L : Sont des registres de 8-bit, souvent utilisés pour le stockage
temporaire d’informations. Ils peuvent être utilisés seuls ou combinés comme des
registres 16-bis, BC, DE, et HL
3.3 Étude du microprocesseur 8085 35
b. Registres spéciaux
• Compteur de programme (Program Counter (PC)) : C’est un registre 16-bit, il
contient l’adresse de la prochaine instruction à exécuter. L’exécution d’une instruc-
tion incrémente automatiquement son contenu (+1).
• Pointeur de pile (Stack Pointer (SP)) : C’un registre 16-bit, il indique au micropro-
cesseur l’adresse de la prochaine case disponible dans la pile.
La pile est une petite partie de la mémoire RAM utilisée pour sauvegarder les
contenus des registres lorsque cela est nécessaire.
• Registre d’instruction (Instruction Register (IR)) : C’est registre non program-
mable, il contient l’instruction en cours d’exécution. Ce registre est chargé depuis de
la RAM ou de la ROM au début du cycle d’exécution, dont l’adresse est donnée par
le compteur de programme PC.
• Registre d’état (Flag Register) : Il est composé de plusieurs bits appelés drapeaux
(Flags) servant à stocker des informations concernant le résultat de la dernière
instruction exécutée.
Les rôles des cinq drapeaux (flags ) de registre d’état sont les suivant :
✓ S (Sgin Flag (Bit de signe)) : il indique le signe du résultat dans l’accumulateur
(1-négatif, 0-positif). Pour une opération d’addition ou de soustraction, S=1 si le bit
le plus significatif du résultat est égal à "1".
✓ Z (Zero Flag) : Ce drapeau est mis à 1 si le résultat de l’opération est nul.
✓ AC (Auxillary carry Flag) : Ce bit est égal à 1 s’il y a une retenue du quarter de
poids faible dans le quarter de poids fort.
✓ P (Parity Flag) : Ce bit est mis à 1 si le résultat contient un nombre pair de 1 (la
parité est paire) et mis à 0 si le résultat contient un nombre impair de 1 (la parité est
impaire).
✓ CY (Carry Flag) : Quant une retenue ou une report est générer lors d’une opération,
le CY est mis à 1.
Exemple :
Cet exemple montre l’adressage d’une mémoire de 1Ko (Figure 3.5) tout en utilisant le
verrou (latch) afin de démultiplexer la partie la moins significative de l’adresse.
Exemple :
LDA 1300H
↗ ↖
Opération à effectuer Opérande (ici une adresse de 16-bit)
(Le code d’opération (opcode) 3A )
Exemple :
MOV A, B : C’est le transfert du contenu de B dans A (A←B) ; il n’a aucune adresse
mémoire.
b/ Adressage immédiat
On parle de mode d’adressage immédiat lorsque l’opérande contient une donnée.
Exemple :
MOV A, 50H : La valeur 50H sera stockée immédiatement dans A (A←50H).
c/ Adressage direct
Dans ce mode, l’adresse de la donnée en mémoire est directement spécifiée dans
l’opérande.
Exemple :
LDA A, 2000H : charger l’accumulateur A par le contenu de l’adresse 2000H
(A←[2000H]).
d/ Adressage indirect
Dans ce mode, l’accès à une donnée en mémoire se fait via un registre qui contient son
adresse.
Exemple :
MOV A, M : charger l’accumulateur A par le contenu de la position mémoire dont
l’adresse est le contenu du registre paire H .
1. MOV : MOVe
Syntaxe : MOV Rd, Rs ou MOV M, Rs ou MOV Rd, M
Tel que : Rd : registre de destination
Rd : registre de destination
Rd : adresse spécifié par HL
Exemple :
MOV C, D [C]←[D] ou MOV M, B [MHL ] ←[B]
Exemple :
MVI A, 14H [A]←14H
3. OUT : OUTput to port. Envoyer un octet de données depuis A vers une interface
de sortie.
Syntaxe : Out adresse du port de sortie
Exemple :
OUT 08H
4. IN : INput from port. Recevoir un octet de données d’une interface d’entrée dans
A.
Syntaxe : IN adresse du port d’entrée
Exemple :
IN 09H
Exemple :
B C
LXI B, 1400H [B]=14H et [C]=00H 14 00
Exemple :
LDA 2000H [A]← [M2000 ]
Exemple :
LDAX B
Exemple :
STA 3000H [M3000 ]←[A]
Exemple :
STAX D [MDE ]←[A]
10. LHLD : Load HL register Direct. Charger le registre pair H par le contenu de la
case mémoire spécifié par les 16-bit de l’opérande et le contenu de la case qui la suit.
Syntaxe : LHLD Adresse 16-bit
Exemple :
LHLD 2000H
11. SHLD : Store HL register Direct. Charger la case mémoire spécifiée par l’adresse
de l’opérande et la case qui suit par le contenu le contenu du registre pair H.
Syntaxe : SHLD Adresse 16-bit
Exemple :
SHLD 3000H
40 Chapitre 3. Étude d’un microprocesseur 8-bit
12. XCHG : eXCHanGe. Échanger le contenu de HL avec DE.
Syntaxe : XCHG
Exemple :
H L D E
Before XCHG A9 C2 67 89
H L D E
After XCHG 67 89 A9 C2
13. XTHL : eXchange Top stack with HL. Echanger le top de pile avec HL.
Syntaxe : XTHL
14. SPHL : Copy HL registers into the Stack Pointer. Copier les contenus des
registres HL dans le registre SP.
Syntaxe : SPHL
15. PCHL : Copy HL registers into the Program Counter. Copier les contenus des
registres HL dans le registre CP.
Syntaxe : PCHL
Exemple :
MVI A, 04H
MVI B, 03H
ADD B [A]←−[A] + [B]
07H= 04H + 03H
Flags : S=0, Z=0, CY=0
Exemple :
MVI A, FFH
ADI 01H [A]←−[A] + 01H
00H= FFH + 01H
Flags : S=0, Z=1, CY=1
Exemple :
MVI A, FFH
MVI B, 03H
SUB B [A]←−[B] - [A]
FCH= 03H - FFH
Flags : S=1, Z=0, CY=1
Exemple :
MVI A, 05H
SUI 02H [A]←−05H - [A]
03H= 02H - 05H
Flags : S=0, Z=0, CY=1
Exemple :
MVI A, 05H
INR A [A]←−1 + [A]
06H= 01H + 05H
Flags : S=0, Z=0
Exemple :
LXI SP, 2000H
INX SP SP←−1 + SP
2001H= 1H + 2000H
Flags : S=0, Z=0
42 Chapitre 3. Étude d’un microprocesseur 8-bit
7. DCR : DeCRmentation . Decrémenter le contenu d’un registre ou d’un espace
mémoire par 1 (-1).
Syntaxe : DCR R ou DCR M
Exemple :
MVI A, 01H
DCR A [A]←−1 - [A]
0H= 1H - 01H
Flags : S=0, Z=1
Exemple :
LXI B, 3000H
DCX B BC←−1 - BC
2FFFH= 1H - 3000H
Flags : S=0, Z=0
9. ADC : ADd with Carry . Additionner un registre 8-bit ou une case mémoire avec
A et CY.
Syntaxe : ADC R ou ADC M
Exemple :
MVI A, 30H
MVI B, F0H
ADD B [A]←−[A] + [B]
CY=1 / 20H= 30H + F0H
ADC B [A]←−CY + [A] + [B]
11H= 1H + 20H + F0H
10. ACI : ADd with Carry Immediat . Additionner une donnée 8-bit avec A et CY.
Syntaxe : ACI donnée 8-bit
Exemple :
MVI A, 30H
MVI B, F0H
ADD B [A]←−[A] + [B]
20H= 30H + F0H
ACI 34H [A]←−CY + 34H + [A]
55H= 1H + 34H + 20H
11. SBB : SuBtract with Borrow . Sourstaire registre 8-bit ou case mémoire et report
CY de A.
Syntaxe : SBB R ou SBB M
3.4 Jeu d’instruction du 8085 43
Exemple :
MVI A, 30H
MVI B, 20H
ADI FFH [A]←−FFH + [A]
CY=1 / 2FH= FFH + 30H
SBB B [A]←−CY - [B] - [A]
0EH= 1 - 20H - 2FH
12. SBI : SuBtract Immediat with borrow . Soustraire une donnée 8-bit et le report
CY de A.
Syntaxe : SBI donnée 8-bit
Exemple :
MVI A, 30H
ADI FF [A]←−FF + [A]
CY=1 / 2FH= FFH + 30H
SBI 20H [A]←−CY - 20H - [A]
0EH= 1H - 20H - 2FH
Exemple :
MVI A, 38H [A]←−38H
| 38 BCD 0011 1000 0111 1101
MVI B, 45H [B]←−345H
| +45 BCD 0100 0101 + 0110
ADD B [A]←−[B] + [A]
|= 83 01111101 10000011
7DH= 38H + 45H
| 7 D 8 3
DAA [A]←−83H
Exemple :
MVI A, 81H
MVI B,77H
ANA B [A]←−[B] AND [A]
01H= 77HH AND 81H
44 Chapitre 3. Étude d’un microprocesseur 8-bit
2. ANI : ABd Immediat. And logique entre le contenu de l’accumulateur A et une
valeur 8-bit.
Syntaxe : ANI donnée 8-bit
Exemple :
MVI A, 55H
ANI 01H [A]←−01H AND [A]
01H= 01H AND 55H
Exemple :
MVI A, 81H
MVI B, 7EH
ORA B [A]←−[B] OR [A]
FFH= 7EH OR 81H
Exemple :
MVI A, 55H
ORI 02H [A]←−02H OR [A]
57H= 02H OR 55H
Exemple :
MVI A, 80H
MVI B, 7EH
XRA B [A]←−[B] XOR [A]
FEH= 7EH XOR 80H
Exemple :
MVI A, 55H
XRI 02H [A]←−02H XOR [A]
57H= 02H XOR 55H
3.4 Jeu d’instruction du 8085 45
Exemple :
MVI A, 55H
CMA 1010 1010 ←− 0101 0101
A A 5 5
Exemple :
Exemple :
Exemple :
B. Instructions de comparaison
Le 8085 possède deux instructions de comparaison à savoir : CMP et CPI.
Exemple :
MVI B, 00H
MVI A, 09H
CMP B [A]>[B]−→CY=0, Z=0
Exemple :
MVI A, 09H
CPI 10H [A]<10H−→CY=1, Z=0
Exemple :
MVI B, 68H
MVI C, 5AH
INR B
JMP FINISH
DCR C
FINISH : MOV A, B
ADD C
2. CALL : Calls the addressed subroutine program. Sauter à une adresse spécifiée
mais la traite comme un sous programme.
Remarque
Il existe deux instructions de manipulation du flag CY à savoir :
1. STC : Mise à 1 de CY CY ←−1
2. CMC : Implémenter CY CY ←− CY
3.4 Jeu d’instruction du 8085 49
Instructions de sous-programme
En plus de l’instruction d’appel et de l’instruction de retour inconditionnelle de sous-
programme, il existe d’autres instructions d’appel et de retour conditionnelles.
Exemple :
Tel que Rp : représente l’un des registres pairs B,D ou H, ou le registre PSW (Program
Status Word), qui est l’ensemble de l’accumulateur A et le registre d’état (Flag register (F))
Exemple :
Adresse Instruction
2000H LXI SP, 2099H
2003H LXI H, 42F2H
2006H PUSH H
2007H POP H
Exemple
On considère l’instruction : |2000H | {zI A}, |{z}
{z } MV 32H
Adresse opcode opérande
C.M. C.M.
4 C.H. 3 C.H.
∑(cycle d ′ horloge)
Tins = (3.1)
Frqunce d ′ horloge
Si on prend l’instruction de l’exemple précédent (MVI A,32H) et on suppose que la
fréquence d’horloge est égale à 2MHz, on trouve que :
• Période d’horloge T = 1/ f = 1/2Mhz = 0.5µs ;
52 Chapitre 3. Étude d’un microprocesseur 8-bit