Académique Documents
Professionnel Documents
Culture Documents
• Fonctions de base
– Fonctions à 1 entrée
• F1 IDENTITE
A F1 F2
• F2 INVERSION 0 0 1
1 1 0
– Fonctions à 2 entrées
• F1 ET (AND)
• F2 OU (OR) A B F1 F2 F3 F4 F5 F6
• F3 NON ET (NAND) 0 0 0 0 1 1 0 1
0 1 0 1 1 0 1 0
• F4 NON OU (NOR)
1 0 0 1 1 0 1 0
• F5 OU EXCLUSIF (XOR) 1 1 1 1 0 0 0 1
• F6 EQUIVALENCE (XNOR)
Le AND Logique peut s’exprimer par le symbole ‘.’ et représente une multiplication
logique :
X = A . B X7 = A7 AND B7, X6 = A6 AND B6, …., X0 = A0 AND B0
X = 00010010
Le NON Logique :
X = NON(A) = A X7 = NON(A7), X6 = NON(A6), …., X0 = NON(A0)
X = 01101100
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 6
Formats des nombres
Hexadécimal 0 1 2 3 4 5 6 7 8 9 A B C D E F
2 0 1 0
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 7
Représentation binaire des nombres non signés (unsigned)
Exemple: Représentation Non Signés sur 8 bits
00h 0
FFh 01h 02h
FEh 254 255 1 2
82h
81h 7Fh
7Eh 130
129 127 126
80h 128
Hexadécimal Décimal
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 8
Représentation binaire des nombres non signés (unsigned)
• Addition arithmétique:
A = 10010011
+
B = 01111010
X = 100001101
• Soustraction arithmétique:
A = 10010011
-
B = 01111010
X = 00011001
C H N Ov P Z
0 0 1 0 1 0
C H N Ov P Z
1 1 0 0 1 0
C H N Ov P Z
0 1 1 1 0 0
C H N Ov P Z
1 1 0 0 0 1
Représentation pour n = 8
-1
0
1
S = Décalage d’un bit à gauche de A
Décimal Hexadécimal Binaire
-64 64 A -126 82h 1000 0010b
S 4 04h 0000 0100b
127
-128
Si A< -2n-2 ou 2n-2 A Décalage d’un bit à gauche sur n bits ne réalise pas une multiplication par 2
Le décalage arithmétique d’un bit à droite réalise toujours une division par 2
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 23
Opérations Arithmétiques en Binaire
Le décalage logique d’un bit vers la droite ne tient pas compte du bit du signe
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 24
Opérations Arithmétiques en Binaire
0000b = 0h
0001b = 1h
0010b = 2h
0011b = 3h
0100b = 4h
0101b = 5h
0110b = 6h
0111b = 7h
1000b = 8h
A (BCD) + B(BCD) = R 1001b = 9h
1010b = Ah
1011b = Bh
1100b = Ch
1101b = Dh
1110b = Eh Erroné
1111b = Fh
10000b = 10h
Maximum:
10001b = 11h
10010b = 12h
9h + 9h = 1001b + 1001b = 10010b = 12h
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 27
Opérations Arithmétiques en Binaire
Addition en BCD
Retenu b3 b2 b1 b0
0000b = 0h
0001b = 1h
0010b = 2h
0011b = 3h
0100b = 4h Il faut rajouter 110b = 6h au
0101b = 5h résultat hexadécimal lorsqu’on a:
0110b = 6h
0111b = 7h b3 = b1 = 1
1000b = 8h b3 = b2 = 1
A (BCD) + B(BCD) = R 1001b = 9h
1010b = Ah Retenu = 1
1011b = Bh
1100b = Ch
1101b = Dh
1110b = Eh Erroné
1111b = Fh
10000b = 10h
10001b = 11h
10010b = 12h
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 28
Opérations Arithmétiques en Binaire
Addition en BCD: Solution Hardware
Eh = 1110b ≥ Ah
17h = 10111b
+ 0110b
Eh = 1110b ≥ Ah
17h = 10111b
+ 0110b
Soit un nombre binaire D sur N bits ayant une partie fractionnaire sur k bits
Exemples:
D = 0111,1010 => N = 8 et k = 4 : Q4(8)
Exemple:
D en Q4(14) = 1001100011,1001
Exemple:
D en Q4(14) = 1001100011,1001
R = (-1)S.(1+m).2e-127
1 e 254 et 0m1
Positif: Négatif:
Max = +(1.99999..)*2127 2128 Max = -2-126
Min = +2-126 Min = -2128
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 39
Représentation binaires des nombres fractionnaires en
virgule flottante
• Standard IEEE 754 de virgule flottante :
Le standard IEEE 754 fixe la norme en simple précision (32 bits) et double
précision (64 bits). En simple précision, la représentation binaire en virgule flottante utilise
un format N=32 bits, un bit S de signe, un exposant e sur 8 bits et une mantisse non signé sur
23 bits :
31 30 23 22 0
Signe Exposant e sur 8 bits entier Mantisse m sur 23 bits non signé en
non signé avec : format Q23(23) avec :
E = e - 127 M=m+1
Le tableau suivant donne des exemples de la norme IEEE 754 de virgule flottante :
Valeur Réelle S E M e (8 bits) m (23 bits)
28 = 1,75 x 24 0 4 1,75 10000011 (131) 110000….0 (0,75)
2 = 1,4142… x 20 0 0 1,414213… 01111111 (127) 0110101000001… (0,4142…)
Documentations:
http://perso.orange.fr/xcotton/electron/coursetdocs.htm
E0 e0 s0 S0
E1 e1 s1 S1
1ér cas:
ENTREES
SORTIES
. . . . CE\ = 1 OE\ = ?
. . . .
Ej ej sj Sj Ej ej si Si
. . . . 0 Z 0 Z
. . . .
1 Z 1 Z
Em em sm Sm
CE\ OE\
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 49
Logique 3 états: ‘0’, ‘1’ et ‘Z’
CE (Chip Enable): Entrée permettant la sélection du composant
OE (Output Enable): Entrée permettant l’activation des sorties
E0 e0 s0 S0
E1 e1 s1 S1
2ème cas:
ENTREES
SORTIES
. . . . CE\ = 0 OE\ = 0
. . . .
Ej ej sj Sj Ej ej si Si
. . . . 0 0 0 0
. . . .
1 1 1 1
Em em sm Sm
CE\ OE\
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 50
Logique 3 états: ‘0’, ‘1’ et ‘Z’
CE (Chip Enable): Entrée permettant la sélection du composant
OE (Output Enable): Entrée permettant l’activation des sorties
E0 e0 s0 S0
E1 e1 s1 S1
3ème cas:
ENTREES
SORTIES
. . . . CE\ = 0 OE\ = 1
. . . .
Ej ej sj Sj Ej ej si Si
. . . . 0 0 0 Z
. . . .
1 1 1 Z
Em em sm Sm
CE\ OE\
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 51
Architecture externe d’un microprocesseur
Horloge
de type Von Newman
Bus de Données
Mémoire Centrale
Périphériques:
MICROPROCESSEUR
- Clavier
ROM, - Ecran
RAM
(EPROM, - Imprimante
(SRAM PIO - Port série
EEPROM, - USB
ou DRAM)
ou FLASH) - Disque Dur
- ….
Bus d’Adresses
Bus de Commande
ROM: Read Only Memory RAM: Random Access Memory PIO: Port Input Output
Périphériques:
MICROPROCESSEUR
- Clavier
ROM, - Ecran
RAM
(EPROM, - Imprimante
(SRAM PIO - Port série
EEPROM, - USB
ou DRAM)
ou FLASH) - Disque Dur
- ….
ROM: Read Only Memory RAM: Random Access Memory PIO: Port Input Output
Dispositif de stockage
des données (écriture/lecture)
des programmes (lecture seule)
Caractéristiques
sa taille (nombre de bits)
son organisation (nombre de bits par mot)
sa vitesse (temps d’accès)
Type d’accès mémoire : en lecture ou écriture
EEPROM
Horloge
Adresse stable
CE/
RD/
Donnée valide
Donnée disponible
pour le processeur
Horloge
Adresse stable
CE/
WR/
Donnée valide
Donnée enregistrée
dans la mémoire
µP_Adresse
N N N N
2N 2N 2N 2N
mots mots mots mots
CE/ 4 bits CE/ 4 bits CE/ 4 bits CE/ 4 bits
RD/ RD/ RD/ RD/
0011.1001.0010.1011
16 S3
CE/
RD/ @ : C000h à FFFFh
WR/ data
D 8
E S2 ad
CE/
2
C
O
RD/
data
@ : 8000h à BFFFh
WR/
A15A14 D
E S1 ad
@ : 4000h à 7FFFh
A15A14 S0 S1 S2 S3 U CE/
RD/
00 0 1 1 1 R WR/ data
01 1 0 1 1 S0
ad
10 1 1 0 1 CE/
RD/ @ : 0000h à 3FFFh
11 1 1 1 0 WR/ data
8
µP_data
WR/
RD/
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 67
La mémoire centrale
Décodage
Exemple
Capacité du µP = 64k mots de 16 bits
Utilisation des circuits mémoires de 16k mots de 8 bits
µP_adresse 14 A13….A0
ad ad
CE/ CE/
@ : C000h à FFFFh
S3 RD/ RD/
16 WR/ data WR/ data
D 8 8
E S2 ad ad
CE/ CE/
C RD/ RD/ @ : 8000h à BFFFh
2 O WR/ data WR/ data
A15A14 D
E S1 ad ad
U CE/ CE/
RD/ RD/ @ : 4000h à 7FFFh
R WR/ data WR/ data
S0
ad ad
CE/ CE/
@ : 0000h à 3FFFh
RD/ RD/
WR/ data WR/ data
16
µP_data
WR/
RD/
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 68
La mémoire centrale
Décodage
Exemple
Capacité du µP = 64k mots de 8 bits
Utilisation des circuits mémoires de 16k mots de 8 bits (Décodage par le poids
faibles du bus d’adresses)
µP_adresse 14 A15….A2
ad A15...A2
CE/
16 S3 RD/
data
0003h 0007h (A1A0 = 11) FFFFh
WR/
D 8
E S2 ad A15...A2
CE/ (A1A0 = 10)
C RD/
0002h 0006h FFFEh
2 O WR/ data
A1A0 D
E S1 ad A15...A2
U CE/
RD/ 0001h 0005h (A1A0 = 01) FFFDh
R WR/ data
S0
ad
CE/ A15...A2
RD/
data 0000h 0004h (A1A0 = 00) FFFCh
WR/
8
µP_data
WR/
RD/
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 69
La mémoire centrale
Décodage
Exemple
Capacité du µP = 64k mots de 8 bits
Utilisation des circuits mémoires de 16k mots de 8 bits (Décodage par le poids
forts du bus d’adresses)
µP_adresse 14 A13….A0
ad
16 S3
CE/
RD/ @ : C000h à FFFFh
WR/ data
D 8
E S2 ad
CE/
2
C
O
RD/
data
@ : 8000h à BFFFh
WR/
A15A14 D
E S1 ad
@ : 4000h à 7FFFh
U CE/
RD/
R WR/ data
S0
ad
CE/
RD/ @ : 0000h à 3FFFh
WR/ data
8
µP_data
WR/
RD/
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 70
La mémoire centrale
Décodage
Exemple:
Mémoire centrale de 16k octets construite à partir de boîtier de
1k x 4 bits:
• 32 boîtiers
• 2 boîtiers en parallèle pour mémoriser un octet
• 14 bits d ’adresse
– 10 pour sélectionner un mot dans les boîtiers
– 4 pour assurer le décodage (A10…A13 ou A0…A3)
4 4
D S14 ad ad
CE/ CE/
E RD/
3 RD/ 4 @ : 3800h à 3BFFh
4 C WR/ data WR/ data
A13A12A11A10 O
D S13 ad ad
E CE/ CE/
RD/ 5 RD/ 6 @ : 3400h à 37FFh
U WR/ data WR/ data
R
S0 ad ad
CE/ CE/
RD/ 31 RD/ 32 @ : 0000h à 03FFh
WR/ data WR/ data
8
data
WR/
RD/
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 72
La mémoire centrale
Décodage: Espace d’adressage
Définition
L’espace d’adressage d’un processeur est défini par la largeur
des adresses que celui-ci génère pour accéder à un mot mémoire
Exemple : 8086
• 20 bits d’adresse
• capacité mémoire maximale 1M octets
Implantation des boîtiers mémoires
La mémoire implantée n’occupe pas obligatoirement la totalité
de l’espace adressage par le µP
Simplification du système de décodage
Adresses
•ROM:
A17 A16 A15 A14………….A0
$00000 - $0FFFF
0 0 x xxxxxxxxxxxxxxx ROM1
$10000 - $1FFFF
•RAM: 0 1 x xxxxxxxxxxxxxxx ROM2
ROM
CS_ROM
RAM1
CS_RAM1
RAM2
CS_RAM2
PIO
CS_PIO\
0 0 1 1 NC NC NC * * * * * * * * * RAM2 3000-31FF
0 0 0 0 NC NC NC NC NC NC NC NC NC NC * * PIO 0000-0003
ROM
CS_ROM
RAM1
CS_RAM1
RAM2
CS_RAM2
PIO
CS_PIO\
0 0 1 1 NC NC NC * * * * * * * * * RAM2 3000-31FF
0 0 0 0 NC NC NC NC NC NC NC NC NC NC * * PIO 0000-0003
ROM
CS2
RAM1
CS1\
RAM2
CS0\
PIO
E2 E1 E0
1 0 0 0 0 0 * * * * * * * * * * ROM 8000-83FF
1 0 0 0 0 1 1 * * * * * * * * * RAM1 8600-87FF
1 0 0 0 1 0 1 * * * * * * * * * RAM2 8A00-8BFF
1 0 0 0 1 1 NC NC NC NC NC NC NC NC * * PIO 8C00-8C03
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 77
Interfaces de communication
Bus de Données
Périphériques:
MICROPROCESSEUR
- Clavier
- Ecran
- Imprimante
ROM RAM PIO - Port série
- USB
- Disque Dur
- ….
Bus d’Adresses
Bus de Commande
ROM: Read Only Memory RAM: Random Access Memory PIO: Port Input Output
liaison liaison
D ’ENTREES D ’ENTREES
CENTRALE CENTRALE SORTIES SORTIES
adresses
données
contrôle
OE\ CK CK OE\
Historique :
Le bus I2C ( Inter Integrated Circuit ) a été développé au début des années 80 par
Philips semi-conducteurs pour permettre de relier facilement à un microprocesseur les
différents circuits d'un téléviseur moderne.
Caractéristiques :
SCL
SDA
MASTER
(MCU)
START condition
Acquittement
Transfert de données
STOP condition
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 103
Les entrées-sorties
Communication Série Asynchrone: RS-232
Exemple:
Pour un format de 7 bits, parité paire, deux bits de stop, le
format de la trame pour la transmission de la lettre E (code ASCII
45h ou en binaire 01000101) est:
Bit départ Bits Bit parité Bit(s)stop
données
Logique: 0 1010001 1 11
Électrique: + -+-+++- - --
LSB MSB
0 1 0 1 0 0 0 1 1 1 1
start 1 2 3 4 5 6 7 Par Stop Stop
T
V = 1/T
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 105
Structure interne d’un microprocesseur
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 108
Structure interne d’un microprocesseur
µP
Unité de Commande
(UC) Bus d’Adresses
Unité Arithmétique et
Logique (ALU)
Bus de Données
Registres:
- Registre d’Etats
- Compteur Programme (PC) Bus de
- Pointeur de la Pile (SP) Commande
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 109
L’ALU
A
Op. R (résultat)
B
Indicateurs (Z, N, C, …)
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 110
L’ALU
CODOP
opération 1
A Opération 2
opération 3 sortie
B
opération n
Indicateurs
Remarque: L’ALU exécute une opération interne parmi n spécifiée par un code
machine nommé Code Opératoire (COD OP). Les opérations de l’ALU ne sont pas
lancées toutes en même temps comme montre ce schéma non réel.
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 111
L’ALU
Associé à un accumulateur
L’accumulateur : registre permettant d’assurer le stockage
d’une opérande
H
data in
Indicateurs
codop opérateurs
data out
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 113
L’ALU
Associé à un accumulateur
Opérations complexes
Décomposition en opérations simples
Exemple : M1 + M2 M1 H
data in
data out
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 114
L’ALU
Associé à un accumulateur
• LOAD accu , M1
H
M1
data in
Indicateurs
codop opérateurs
Sortie = data in
H M1 Registre d’état
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 115
L’ALU
Associé à un accumulateur
• accu + M2 accu
H
M2 M1
data in
Indicateurs
codop opérateurs
H M1 + M2 Registre d’état
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 116
L’ALU
Associé à un accumulateur
• STORE M1 , accu
H
data in
Indicateurs
codop opérateurs
NOP
H M1 + M2 Registre d’état
M1
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 117
L’ALU
Registre d’état et mot d’état
Mot d’état
Ensemble d’indicateurs binaires (flags) qui caractérisent le
dernier résultat évalué dans l’ALU. Par exemple :
• Bit Z = 1 si résultat nul
• Bit C = 1 si retenue sortante de l’ALU
• Bit N = 1 si résultat négatif
Tous les bits ne sont pas modifiés à chaque opération
Le mot d’état est utilisé par l’UC lors d’une instruction
conditionnelle
Registre d’état
Registre qui stocke le mot d’état
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 118
L’ALU
Schéma bloc
data in
OPERATEURS commande
H ET
REGISTRES état
data out
• Exemples de commande
– ADD addition – NOP pas de changement
– SUB soustraction – LOAD chargement d’un registre
– INC incrémentation – STORE écriture en mémoire d’un registre
– DEC décrémentation – CMP comparaison
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 119
L’unité de contrôle
Architecture simplifiée
µP
Compteur Programme
Bus d’Adresses
+1
Bus de Données
Mémoire
instruction
Registre Instruction centrale
RD/
Reg. état
Décodeur
signaux
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 121
Organisation particulière: PILE
0 7
FFFF
Adresse_Fin
RAM
PILE
Adresse_Debut
0000
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 122
Organisation particulière: PILE
In In Out
Pointeur
Out
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 123
Organisation particulière: PILE
µP
PILE
RD/
Adresse_Fin
7 REGISTRE 0 WR/
DONNEE
PUSH
BUS DE DONNEES
POP
SP
ADRESSE
15 0 Adresse_Debut
7 0
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 124
EVALUATION
Questions de cours:
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 125
Exemple: Microprocesseur 8086
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 126
Brochage du µP 8086
MASSE 1 40 VCC
AD14 2 39 AD15
AD13 3 38 A16 S3
AD12 4 37 A17 S4
AD11 5 36 A18 S5
AD10 6 35 A19 S6
AD9 7 34 BHE/ S7
AD8 8 33 MN – MX/
AD7 9 32 RD/
AD6 10 8086 31 HOLD (RQ/ GT0/)
AD5 11 30 HLDA (RQ/ GT1/)
AD4 12 29 WR/ (LOCK)
AD3 13 28 M – IO/ (S2/)
AD2 14 27 DT – R/ (S1/)
AD1 15 26 DEN/ (S0/)
AD0 16 25 ALE (QS0)
NMI 17 24 INTA/ (QS1)
INTR 18 23 TEST/
CLK 19 22 READY
MASSE 20 21 RESET
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 127
Organisation de la mémoire en deux banques
A1 – A19
BANQUE BANQUE
BHE\
SUPERIEURE INFERIEURE
A0
ADRESSES ADRESSES
IMPAIRES PAIRES
D8 – D15 D0 – D7
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 128
Démultiplexage du bus d’adresses et de
données
ALE
µP
8086
Transmetteur
Bidirectionnel D0 – D15 D0 – D15
8286/87
WR/ WR/
DEN\ RD/ RD/
DT – R\ CS CS\
M – IO\ RD\ WR\
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 129
Timing du cycle de lecture en mémoire
et en périphérique
Cycle d’opération
T1 T2 T3 T4
Horloge
ALE
RD\
DT – R\
DEN\
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 130
Timing du cycle d’écriture en mémoire
et en périphérique
Cycle d’opération
T1 T2 T3 T4
Horloge
ALE
WR\
DT – R\
DEN\
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 131
Registres du µP 8086
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 132
Registres du µP 8086
4 Registres de Données:
Accumulateur: AX = AH : AL
Base: BX = BH : BL
Compteur: CX = CH : CL
Données: DX = DH : DL
15 8 7 0
AX : AH AL Accumulateur
BX : BH BL Base
CX : CH CL Compteur
DX : DH DL Données
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 133
Registres du µP 8086
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 134
Registres du µP 8086
4 Registres Segment:
Segment Code: CS
Segment Données: DS
Segment Pile: SS (Stack Segment)
Extra Segment: ES
15 0
CS Segment Code
DS Segment Données
SS Segment Pile
ES Extra Segment
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 135
Registres du µP 8086
1 Registre de Contrôle:
Le registre d’état :
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF AF PF CF
• CF carry flag
• PF parity flag
• AF auxiliary flag
• ZF zero flag
• SF sign flag
• TF Trap (mode pas à pas)
• IF autorisation d’interruption
• DF direction (pour opérations sur chaîne)
• OF overflow flag
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 136
Segmentation de la mémoire
Bus d’adresses codées sur 20 bits: A19 – A0
Capacité d’adressage : 220 octets = 1 Moctets
Problème:
Tous les registres du 8086 sont de 16 bits
Comment on peut avoir une adresse sur 20 bits à partir des
registres de 16 bits ?
Intel: Segmentation de la mémoire en blocs de 64 Koctets
Offset début Offset Fin
0000h FFFFh
du segment du segment
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 138
Segmentation de la mémoire
Adresse d’un mot
Adresse de début de segment + Offset dans le segment
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 139
Architecture interne du µP 8086
M
E
Bus
Unité de CALCUL de M
d‘Adresses 20
AX AH AL ADRESSE PHYSIQYE O
bits
BX BH BL I
R
CX CH CL E
DX DH DL
SP CS
BP IP
DI DS
SI SS
‘UE’ : Unité d’Exécution ES ‘BIU’ : Unité d’Interface de Bus
FILE
UAL
D’ATTENTE
Décodeur
1
d’Instruction
2
Registre d’ETAT
3
4
5
6
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 140
Les modes d’adressage du 8086
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 141
Les modes d’adressage du 8086
Adressage Immédiat:
L’opérande SOURCE est une CONSTANTE
MOV AX , 15FAh ; AX reçoit la valeur 15FAh
MOV BX , 01001111b ; BX reçoit la valeur 004Fh
MOV CL , 10 ; CL reçoit la valeur 0Ah
Remarque 2: L’adressage immédiat peut être appliqué avec tous les registres
sauf les registres segments. Pour mettre une constante dans un registre
segment, il faut utiliser un registre intermédiaire:
MOV AX, 0100h ; (AX)= 0100
MOV DS, AX ; (DS)= (AX)
Remarque 3: Ce type d’adressage n’a pas besoin d’un accès en mémoire.
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 142
Les modes d’adressage du 8086
Adressage Registre:
Les 2 opérandes SOURCE et DESTINATION sont des
registres
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 143
Les modes d’adressage du 8086
MEMOIRE
00001 00000
Adressage Direct:
E0101 4F 31 E0100
L’instruction spécifie l’adresse physique d’une des 2
opérandes SOURCE ou DESTINATION. On a besoin F0101 17 0A F0100
de connaître le registre segment et l’offset.
FFFFF FFFFE
FFFFF FFFFE
FFFFF FFFFE
MOV AX, SS:[DI + BP] ; Si (SS) = A000h, (DI) = 0100h et (BP) = 0020h
; L’adresse Physique: A000h x 10h + 0100h + 0020h = A0120h
; (AX) = FF00h
Remarque: Si on n’indique pas le registre segment :
•BX est le registre de base DS est le registre segment pris par défaut
•BP est le registre de base SS est le registre segment pris par défaut.
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 147
Les modes d’adressage du 8086
Adressage avec déplacement:
L’offset de l’adresse physique est la somme d’un registre
d’index (SI ou DI) et un registre de base (BX ou BP) MEMOIRE
00001 00000
MOV 1200h[SI + BX] , DX
; Si (DX) = 1234h, (DS)= E000h, (SI) = A000h A0121 FF 00 A0120
; et (BX) = 0010h, le contenu de DX est transféré
; dans l’adresse physique: EB211 12 34 EB210
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 148
Les modes d’adressage du 8086
Indexé SI ou DI DS
Basé BX DS
Basé BP SS
Basé et Indexé BP + (SI ou DI) SS
Basé et Indexé BX + (SI ou DI) DS
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 149
Les modes d’adressage du 8086
Lien implicite pour le calcul de l’adresse physique:
Le registre IP s’associe exclusivement avec la registre segment CS
pour pointer l’adresse physique de la prochaine instruction à
exécuter par le µP.
Adresse Code objet Code symbolique
CODE SEGMENT
ASSUME CS: CODE, DS: DATA, SS: PILE
0000 PROG_PRINC:
0000 89 07 MOV [BX], AX
0002 FE 07 INC BYTE PTR [BX]
0004 00 27 ADD [BX], AH
0006 88 47 10 MOV [BX+10h], AL
0009 C7 03 8086 MOV [BP+DI], 8086h
000D C7 00 8086 MOV [BX+SI], 8086h
0011 80 03 31 ADD BYTE PTR [BP+DI], '1'
0014 FF 37 PUSH WORD PTR [BX]
0016 CODE ENDS
END PROG_PRINC
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 150
Les modes d’adressage du 8086
Lien implicite pour le calcul de l’adresse physique:
Le registre SP s’associe exclusivement avec la registre segment SS
pour pointer l’adresse physique du sommet de la pile.
1FFF7 CC B5 1FFF6
1FFF9 41 BE 1FFF8 Sommet de la pile
1FFFB 4C F2 1FFFA
1FFFD 96 52 1FFFC
1FFFF 47 A1 1FFFE
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 151
Les modes d’adressage du 8086
Lien implicite pour le calcul de l’adresse physique:
L’instruction PUSH qui permet d’empiler s’exécute en 2 phases:
• (SP) – 2 SP
• Ecriture d’un mot de 16 bits au nouveau sommet de la pile
Exemple: (SS) = 1000h, (SP) = FFF8h et (AX) = 1234h
Avant l’exécution de Après l’exécution de
PUSH AX PUSH AX
PILE PILE
10001 10000 10001 10000
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 152
Les modes d’adressage du 8086
Lien implicite pour le calcul de l’adresse physique:
L’instruction POP qui permet de dépiler s’exécute en 2 phases:
• Lecture d’un mot de 16 bits au sommet de la pile
• (SP) + 2 SP
Exemple: (SS) = 1000h, (SP) = FFF8h
Avant l’exécution de Après l’exécution de
POP CX POP CX (CX) = 41BEh
PILE PILE
10001 10000 10001 10000
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 153
Les modes d’adressage du 8086
Déclaration de Procédure: Intra Segment
Programme Principal
Sous Programme : SousProg
MOV AX,BX
ADD [SI] SousProg PROC NEAR
…. …. PUSH BX
…. …. 1 PUSH DX
CALL SousProg 4 LEA BX,MEM
MOV AL,AH MOV DX,[BX]
…. …. 5 2 …. ….
…. …. 3 …. ….
CALL SousProg …. ….
INC CX POP DX
6 POP BX
…. ….
…. …. RET
END SousProg ENDP
PILE
Intra Segment : Intra Segment :
CALL RET
IP
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 154
Les modes d’adressage du 8086
Déclaration de Procédure: Inter Segment
Programme Principal
Sous Programme : SousProg
MOV AX,BX
ADD [SI] SousProg PROC FAR
…. …. PUSH BX
…. …. 1 PUSH DX
CALL SousProg 4 LEA BX,MEM
MOV AL,AH MOV DX,[BX]
…. …. 5 2 …. ….
…. ….
3 …. ….
CALL SousProg …. ….
INC CX POP DX
6 POP BX
…. ….
…. …. RET
END SousProg ENDP
PILE
Inter Segment : Inter Segment :
CALL RET
IP
CS
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 155
Structure du Programme Assembleur
; --- Déclaration Segment Code
CODE SEGMENT PUBLIC
ASSUME CS:CODE, DS:DATA, SS:PILE
; --- Spécification du type du microprocesseur
; --- Déclaration des procédures
. 8086
name_proc PROC NEAR
; --- Déclaration des constantes
PUSH AX
TAILLE EQU 90
...
; --- Déclaration des macros
POP AX
OUT_P MACRO PORT,VALEUR
RET
PUSH AX
name_proc ENDP
PUSH DX
...
MOV DX,PORT
;--- Procédure d’interruption
MOV AL,VALEUR
timer PROC FAR
OUT DX,AL
PUSH DS
POP DX
...
POP AX
OUT_P 3FBh,80h
ENDM
...
; --- Déclaration Segment de la Pile
POP DS
PILE SEGMENT STACK
IRET
DW 100 DUP(?)
timer ENDP
PILE ENDS
; --- Debut du programme principal
; --- Déclaration Segment de Données
ProgPrinc:
DATA SEGMENT PUBLIC
MOV AX, DATA
var1 DB 10h
MOV DS, AX
var2 DW 1
...
buffeur DB TAILLE DUP(?)
CALL name_proc
ptr DD buffeur
...
DATA ENDS
...
CODE ENDS
END ProgPrinc
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 156
Directives de l’Assembleur
Déclaration des constantes par EQU :
CR EQU 0Dh ; code ASCII du Retour Chariot
LF EQU 0Ah ; code ASCII du Retour à la Ligne
Déclaration des variables :
Var1 DB 15 ; réservation d’un octet initialisé à 15 décimal
Var2 DW 1122h ; réservation d’un mot de 16 bits initialisé à 1122h
Var3 DD 11223344h; réservation d’un long mot 32 bits initialisé à 11223344h
Var4 DB ? ; réservation d’un octet non initialisé
Var5 DB 10 DUP(0) ; réservation de 10 octets initialisés à 0
Var6 DW 100 DUP( ?) ; réservation de 100 mots de 16 bits non initialisés
Var7 DB ‘7’ ; réservation d’un octet initialisé au Code ASCII de 7=37h
Message DB ‘MESSAGE’ ; réservation d’une zone mémoire de 7 octets initialisés
; avec les codes ASCII des lettres M, E, S, S, A, G et E
Table DB 1,2,3,4,5 ; réservation d’une zone mémoire de 10 octets initialisés
DB 6,7,8,9,10 ; à 1, 2, 3, …, 10 décimal
Premiers DW 1,2,3,5,7 ; réservation d’une zone mémoire de 8 mots 16 bits
DW 11,13,17 ; initialisé à 1, 2,…, 17 décimal
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 157
Directives de l’Assembleur
DATA SEGMENT
Table1 DB 00h, ‘1’, 7Fh, ?, ‘012345’
Table2 DB 5 DUP(9), 49h, 70h, 0FFh, 01h, 1Eh
Nombre1 DW 1 DATA
Nombre2 DD 2
10001h 31h 00h 10000h
DATA ENDS
10003h ? 7Fh 10002h
10005h 31h 30h 10004h
10007h 33h 32h 10006h
10009h 35h 34h 10008h
1000Bh 09h 09h 1000Ah
Le segment DATA est pointé par
1000Dh 09h 09h 1000Ch
le registre DS et (DS) = 1000h
1000Fh 49h 09h 1000Eh
10011h FFh 70h 10010h
10013h 1Eh 01h 10012h
10015h 00h 01h 10014h
10017h 00h 02h 10016h
10019h 00h 00h 10018h
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 158
Jeux d’instructions
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 159
Exercices
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 160
Exercices
Exercice 1: (4 points)
On suppose que les registres du 8086 sont affectés comme suit :
(DS) = E000h (SS) = F000h (SI) = 10A0h (DI) = 400h
(BP) = 0A00h (SP) = 100h (AX) = 1234h (BX) = 10h
Calculer les adresses mémoires éventuelles affectées et déterminer leurs contenus après exécution de
chaque instruction de la séquence suivante :
MOV [BX], AX
INC BYTE PTR [BX]
ADD [BX], AH
MOV SS :[BX+10h], AL
MOV [BP+DI], 8086h
MOV [BX+SI], 8086h
ADD [BP+DI], ‘1’
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 161
Exercices
Exercice 3: (2 points)
Parmi les instructions suivantes sélectionner celles qui ont des erreurs de syntaxe.
MOV DS, 8086h
MOV AX, [BP]
MOV [SI+DI], AX
INC [SS]
MOV BX, [BP+DI]
MOV [BP+BX], 100h
MOV SS, DS
ADD BX:[SI], AX
PUSH AL
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 162
Exercices
Exercise 1 : (2,5 points) Soit le segment de données suivant :
DATA SEGMENT
Ascii_0 DB 30h
Ascii_1 DB ‘1’
Ascii_2 DB 32h
Ascii_3 DB 33h
Table DW 1 , ‘9’ , 1234h , ? , 3
DD 1,2
DATA ENDS
a- (1,5 points) Sachant que le registre DS contient 100h, donner l’image du segment DATA par
rapport au registre DS.
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 163
Exercices
Exercice 2: (5 points)
Soit le segment de données suivant :
DATA SEGMENT
Table1 DB 00h, ‘1’, 7Fh, ?,’012345’
Table2 DB 5 DUP(9), 49h, 70h, 0FFh, 01h, 1Eh
Nombre1 DW 1
Nombre2 DD 2
DATA ENDS
a- Sachant que l’adresse de DATA est 1000h et que le registre DS contient cette adresse, donner
l’image mémoire du segment DATA (2 points).
b- Ecrire un sous programme qui permet d’échanger la Table1 avec la Table2 (permutation dans les
deux sens) (3 points).
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 164
Exercices
Exercice 5 : (4 points) Soit le sous programme suivant :
Les variables var et resultat sont deux cases mémoires d’un octet chacune réservées dans le segment de
données.
a- Expliquer le fonctionnement de l’instruction Loop.
b- Donner le contenu des mémoires resultat et var.
c- En déduire la fonction réalisée par le sous programme SousProg.
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 165
Exercise 3 : (6 points) Exercices
Soit le programme à compléter suivant :
.8086
; **************************************************************************
PILE SEGMENT STACK
DW 100 DUP( ?)
PILE ENDS
; **************************************************************************
DATA SEGMENT
BUFFEUR DB -10h, 90h, 60h, -80h, -20h, 30h, 40h, 50h,-98h, -99h
NBPOSITIF DB 10 DUP(0)
NBNEGATIF DB 10 DUP(0)
DATA ENDS
; **************************************************************************
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:PILE
SOUSPROG PROC NEAR
......
......
RET
SOUSPROG ENDP
; -----------------------------------------------------------------------
PROGPRINC :
CALL SOUSPROG
CODE ENDS
END PROGPRINC
Le sous programme SOUSPROG permet d’isoler les nombres positifs des nombres
négatifs de BUFFEUR. Les nombres positifs de BUFFEUR seront transférer dans
NBPOSITIF et ceux négatifs dans NBNEGATIF. Compléter le programme précédent en
traduisant l’organigramme ci-dessus de SOUSPROG en codes symboliques du µP 8086.
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 166
Exercices
Sauvegarde dans la pile de tous les registres affectés
AH AL
OUI NON
(AH) Négatif (BIT 7 de AH = 1) ?
(DI) + 1 DI (SI) + 1 SI
NON
(CX) – 1 CX (CX) = 0 ?
OUI
Récupération de la pile des registres affectés
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 167
Les Entrées/Sorties
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 168
Les Entrées/Sorties
ALE
µP
8086
Transmetteur
Bidirectionnel D0 – D15 D0 – D15
8286/87
WR/ WR/
DEN\ RD/ RD/
DT – R\ CS CS\
M – IO\ RD\ WR\
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 169
Les Entrées/Sorties
• Chez MOTOROLA, dans le même champ adressable par le µP,
on peut avoir la mémoire et les E/S.
• Chez INTEL, l’accès au champ mémoire est séparé de celui du
champ E/S
• Le champ E/S du µP 8086 est accessible par le bus A0-A15 donc
ce champ a une capacité de 64 Koctets
• Dans le champ E/S, on trouve les périphériques comme le
Timer 8253, le PIC 8259, le PIO 8255,…
• Le dialogue entre le µP et un périphérique se fait uniquement
avec les instructions IN et OUT
• Les instructions IN et OUT positionnent la ligne M-IO\ à la
masse
• La LECTURE d’un port E/S se fait avec l’instruction IN
• L’ECRITURE dans un port E/S se fait avec l’instruction OUT
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 170
Syntaxe des instructions IN et OUT
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 171
Syntaxe des instructions IN et OUT
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 172
Syntaxe des instructions IN et OUT
0000h Adresse_Port_E/S FFFFh
• Lecture d’un mot de 8 bits:
MOV DX, Adresse_Port_E/S
IN AL, DX
Exemple:
MOV DX, 0E000h ; Adresse_Port_E/S dans le registre DX
IN AL, DX ; Lecture de l’octet contenu dans le port pointé par DX
; port E000h AL
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 173
Syntaxe des instructions IN et OUT
0000h Adresse_Port_E/S FFFFh
• Ecriture d’un mot de 8 bits:
MOV DX, Adresse_Port_E/S
OUT DX, AL
Exemple:
MOV DX, 0E000h ; Adresse_Port_E/S dans le registre DX
OUT DX, AL ; Ecriture de l’octet contenu dans AL dans le port pointé par DX
; (AL) port E000h
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 174
Interface Programmable Parallèle:
PIO 8255
A1 A0 CS\ D7 – D0 RD\ WR\
COMMANDE
PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0
Port A
PORTA PORTC_H
Commande
Indicateur 0 : OUTPUT =0 si MODE0 0 : OUTPUT
1 : ACTIF 1 : INPUT =1 si MODE1 1 : INPUT
Port B
D7 D6 D5 D4 D3 D2 D1 D0
Port C
00 : MODE0 PORTC_L PORTB
01 : MODE1 0 : OUTPUT 0 : OUTPUT
10 ou 11 : MODE2 1 : INPUT 1 : INPUT
PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0
5V
Capteur
Voie Secondaire Voie Principale
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 177
Interface Programmable Parallèle:
PIO 8255 http://www.aurel32.net/elec/port_parallele.php
VertPrincipal:
.8086 MOV DX, PORTB
MOV AL, 10000001b ; Rouge Secondaire et Vert Principale
PORTA EQU 378h ; détails OUT DX, AL
PORTB EQU 379h TestCapteur:
PORTC EQU 37Ah MOV DX, PORTA
COMMANDE EQU 37Bh IN AL, DX ; Lecture du PORTA
AND AL, 00010000b ; Isolation du bit PA4
PILE SEGMENT STACK JNZ TestCapteur ; Si PA4 = 1 alors Vert Voie Principale
DW 100 DUP(?)
PILE ENDS MOV DX, PORTB
MOV AL, 10000010b ; Rouge Secondaire et Orange Principale
DATA SEGMENT OUT DX, AL
CALL TEMPO_5sec ; Temprisation 5 secondes
DATA ENDS
MOV AL, 00100100b ; Vert Secondaire et Rouge Principale
CODE SEGMENT OUT DX, AL
ASSUME CS: CODE, DS: DATA, SS: PILE CALL TEMPO_1min ; Temporisation 1 minute
TEMPO_5sec PROC NEAR MOV AL, 01000100b ; Orange Secondaire et Rouge Principale
RET OUT DX, AL
TEMPO_5sec ENDP CALL TEMPO_5sec ; Temporisation 5 secondes
TEMPO_1min PROC NEAR MOV AL, 10000001b ; Rouge Secondaire et Vert Principale
RET OUT DX, AL
TEMPO_1min ENDP CALL TEMPO_3min ; Temporisation 3 minutes
JMP VertPrincipal
TEMPO_3min PROC NEAR
RET CODE ENDS
TEMPO_3min ENDP END ProgPrinc
17 16 18 13 14 15 10 11 9
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 179
TIMER Programmable 8253
20 19 21 1-8
22 23
A1 A0 CS\ D7 – D0 RD\ WR\
24
VCC
12
COMMANDE GND
17 16 18 13 14 15 10 11 9
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 180
TIMER Programmable 8253
Registre de COMMANDE
D7 D6 D5 D4 D3 D2 D1 D0
SC1 SC2 RL1 RL2 M2 M1 M0 BCD
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 181
TIMER Programmable 8253
MODE 0 : Envoie une interruption en fin de décomptage
CLKx
N=4
WR\
4 3 2 1 0
OUTx (GATEx = 1)
N=4
WR\
4 3 2 1 0
GATEx
4 3 3 3 2 1 0
OUTx (GATEx variable)
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 182
TIMER Programmable 8253
MODE 1 : Monostable
CLKx
N=3
WR\
GATEx
3 2 1 0
OUTx
GATEx
3 2 3 2 1 0
OUTx
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 183
TIMER Programmable 8253
MODE 2 : Générateur de Rythme
CLKx
N=4
WR\
4 3 2 1 4 3 2 1 4
OUTx
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 184
TIMER Programmable 8253
MODE 3 : Générateur d’onde carrée
CLKx
N=4
WR\
4 3 2 1 4 3 2 1 4
OUTx
OUTx
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 185
TIMER Programmable 8253
MODE 4 : Déclenchement Logiciel
CLKx
N=4
WR\
GATEx
4 3 3 4 3 2 1 0
OUTx
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 186
TIMER Programmable 8253
MODE 5 : Déclenchement Matériel
CLKx
N=3
WR\
GATEx
3 2 1 0
OUTx
GATEx
3 2 3 2 1 0
OUTx
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 187
TIMER Programmable 8253
Exemple:
On veut générer un signal carrée de fréquence 1 KHz sur la
sortie OUT1 du TIMER 8253 sachant que la fréquence d’horloge
CLK1 est 1 MHz. Le TIMER 8253 peut être adressé dans le champ
Entrée/Sortie entre 40h et 43h.
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 188
TIMER Programmable 8253
Exemple:
On veut générer un signal carrée de fréquence 1 KHz sur la
sortie OUT1 du TIMER 8253 sachant que la fréquence d’horloge
CLK1 est 1 MHz. Le TIMER 8253 peut être adressé dans le champ
Entrée/Sortie entre 40h et 43h.
CLKx
N=4
WR\
4 3 2 1 4 3 2 1 4
OUTx
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 189
TIMER Programmable 8253
Exemple:
On veut générer un signal carrée de fréquence 1 KHz sur la sortie OUT1
du TIMER 8253 sachant que la fréquence d’horloge CLK1 est 1 MHz. Le
TIMER 8253 peut être adressé dans le champ Entrée/Sortie entre 40h et 43h.
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 190
.8086
TIMER Programmable 8253
COMPTEUR0 EQU 40h
COMPTEUR1 EQU 41h
COMPTEUR2 EQU 42h
COMMANDE EQU 43h
DATA SEGMENT
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA, SS: PILE
ProgPrinc:
MOV AX, DATA
MOV DS, AX
DATA SEGMENT
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA, SS: PILE
ProgPrinc:
MOV AX, DATA
MOV DS, AX
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 192
.8086
TIMER Programmable 8253
COMPTEUR0 EQU 40h
COMPTEUR1 EQU 41h
COMPTEUR2 EQU 42h
COMMANDE EQU 43h
DATA SEGMENT
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA, SS: PILE
ProgPrinc:
MOV AX, DATA
MOV DS, AX
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 193
TIMER Programmable 8253
Lecture au vol d’un COMPTEUR:
MOV AL, 01000110b
Registre de COMMANDE OUT
MOV
43h, AL
AL, 01110110b
OUT 43h, AL
D7 D6 D5 D4 D3 D2 D1 D0
IN AL, 41h
SC1 SC2 RL1 RL2 M2 M1 M0 BCD MOV AH, AL
IN AL, 41h
XCHG AL, AH
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 194
TIMER Programmable 8253
Interfaçage du TIMER 8253 dans un microordinateur PC – IBM:
1-8
20 19 21 22 23
A1 A0 CS D7 – D0 RD WR
24
VCC
12
COMMANDE TIMER 8253 GND
17 16 18 13 14 15 10 11 9
PC-IBM
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 195
TIMER Programmable 8253
Exercice:
Ecrire le sous-programme ‘’Tempo10s’’ qui réalise une temporisation de 10 secondes sur le
compteur 0 du TIMER 8253 sachant que la fréquence de CLK0 est de 1 MHz, suivant
l’organigramme ci-dessous :
Nombre R de Relancement du compteur 0 registre CX
Compteur 0 en mode 0, lecture ou chargement du LSB puis du MSB, compteur binaire 16 bits Registre Commande
R est le nombre de
rechargement du compteur 0 Poids faible (LSB) du Compteur 0 AL
afin d’avoir :
AL AH
Temporisation 10
Poids fort (MSB) du Compteur 0 AL
secondes = N * R / 1000000
Non
AX = 0 ?
Oui
Non
(CX) – 1 CX
CX = 0 ?
Oui
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 196
Les interruptions
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 197
Les interruptions
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 198
Les interruptions
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 199
Les interruptions
Interruption Logiciel (Software):
Le numéro d'interruption n permet d'adresser la table des vecteurs
d'interruption et d'obtenir l'adresse physique CSn:IPn de la procédure d'interruption
numéro n :
0000:0001 IP0 0000:0000
Vecteur d’interruption n = 0 0000:0003 CS0 0000:0002
0000:0005 IP1 0000:0004
0000:0007 CS1 0000:0006
0000:0009 IP2 0000:0008
0000:000B CS2 0000:000A
Programme
principal
.........
.........
Programme CSn :IPn IPn 0000:4n INT n
d’interruption CSn 0000:4n+2 .........
..... .........
..... END
.....
IRET
0000:00FD IP255 0000:00FC
Vecteur d’interruption n = 255 0000:00FF CS255 0000:00FE
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 200
Les interruptions
Interruption Logiciel (Software):
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 201
GESTION VIDEO: INT 10h
L’interruption 10H du BIOS est utilisée pour assurer la gestion de l’écran. Elle permet d’adresser, lire et
modifier les caractéristiques de l’interfaces vidéo ou les caractères affichés. Elles permet en outre d’effectuer
une série d’opérations différentes. Ces opérations sont sélectionnées en fonction du contenu du registre AH au
moment de l'appel de l’interruption. Les appels de l’interruption 10H préservent les registres CS, DS, SS, ES,
BX, CX et DX.
Code AH FONCTION
00H Positionne l’écran dans le mode choisi
CE : AL contient le mode choisi :
AL=0 : texte 40x25 monochrome
AL=1 : texte 40x25 couleur
AL=2 : texte 80x25 monochrome
AL=3 : texte 80x25 couleur
AL=4 : graphique 320x200 couleur
AL=5 : graphique 320x200 monochrome
AL=6 : graphique 640x200 monochrome
AL=7 : texte 80x25 monochrome avec carte mono
CS : rien
01H Sélectionne le format du curseur
CE : les bits B0 à B4 de CH contiennent la ligne de début du curseur,
les bits B0 à B4 de CL contiennent la ligne de fin de curseur,
les bits B5 à B7 des deux registres sont à 0
CS : rien
02H Positionne le curseur en absolu
CE : DH contient la ligne
DL contient la colonne
BH contient le numéro de la page écran
CS : rien
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 202
GESTION VIDEO: INT 10h
Code AH FONCTION
03H Lecture de la position et du format du curseur
CE : BH contient le numéro de la page écran
CS : DH contient la ligne (écran)
DL contient la colonne (écran)
CH contient la ligne (trame) du début du curseur
CL contient la ligne (trame) de fin du curseur
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 203
GESTION VIDEO: INT 10h
Code AH FONCTION
0AH Ecriture d’un caractère et de ces attributs de visualisation à la position
courante du curseur
CE : BH contient la page écran
AL contient le caractère à écrire
CX contient le nombre de fois qu’il faut écrire le caractère
CS : rien
0BH Sélection de la palette de couleurs en mode graphique. Actuellement, seul
le mode 320x200 utilise cette fonction. Dans ce mode, si BH=0, il permet la
modification de la couleur de fond avec la valeur contenue dans BL(0 à 15).
Si BH=1, alors BL sélectionne une des deux palettes disponibles
CE : BH contient l’identificateur de la couleur dans la palette
CS : rien
0CH Ecriture d’un point graphique
CE : DX contient la coordonnée verticale du point à afficher (0- 199)
CX contient la coordonnée horizontale du point à afficher (0 à 319 ou 639)
AL contient la couleur du point. Si le bit 7 de AL est positionné à 1, le
système exécute un OU EXCLUSIF entre la couleur courante du point et la
couleur contenu dans les bits B0 à B6 de AL.
CS : rien
ODH Lecture d’un point graphique
CE : DX contient la coordonnée verticale du point à lire (0 à 199)
CX contient la coordonnée horizontale du point à lire (0 à 310 ou 639)
CS : AL contient la couleur du point lu
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 204
GESTION VIDEO: INT 10h
Code AH FONCTION
0EH Ecriture d’un caractère sur l’écran avec avance du curseur. L’écran est
considéré comme simple terminal. Cette routine teste les retours arrière
(BACKSPACE), les retours chariot (RC), et les LINE FEED (LF) et la
sonnette (BELL). Elle gère également le SCROLLING de l’écran
CE : AL contient le caractère à écrire
BL contient la couleur éventuelle du caractère
BH contient le numéro de la page écran
CS : rien
0FH Lecture de l’état courante de l’interface vidéo
CE : rien
CS : AL contient le mode courant (voir fonction 00H)
AH contient le nombre de caractère par ligne
BH contient le numéro de la page active
10H Réservé
11H Réservé
12H Résevé
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 205
Les interruptions
Interruption Logiciel (Software): Exemples
Code AH FONCTION
09H Affichage d’un texte à la console : affiche le texte pointé par DX et terminé
par un signe $ sur STDOUT.
CE : DS :DX pointe sur le texte
CS : rien
DATA SEGMENT
message DB "Entrer un nombre décimal : $"
DATA ENDS
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 206
Les interruptions
Interruption Logiciel (Software): Exemples
Code AH FONCTION
0AH Lecture d’une ligne à la console : le contenu du tampon pointé par DS :DX
est utilisé comme GABARIT d’édition. Tous les caractères reçus en
provenance de STDIN sont placés dans le tampon jusqu’à réception d’un
retour chariot (RC). Le premier caractère du tampon, ne peut être égal à
zéro, spécifie le nombre de caractère que le tampon peut contenir. En
sortie , le deuxième octet du tampon contient le nombre de caractères
entrés. Le troisième octet contient le premier caractère tapé.
CE : DS :DX pointe sur le tampon
CS : rien
DATA SEGMENT
Buf_saisie DB 80, ?, 80 DUP(?)
DATA ENDS
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 207
Les interruptions
Interruption Logiciel (Software): Exemples
Code AH FONCTION
01H Lecture du tampon pour déterminer si un caractère est disponible
CE : rien
CS : Si un caractère est disponible, le sémaphore de zéro (ZF) est mis à zéro.
Sinon, le sémaphore de zéro est mis à un. Si ZF=0, alors AL contient le
caractère et AH contient le SCAN CODE.
Remarque : le caractère n’est pas retiré du tampon.
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 208
Les interruptions
Interruption Matériel (Hardware):
Interruption RESET:
L'activation de la ligne RESET sur le niveau haut provoque l’exécution du programme
d’initialisation du système qu’on appelle MONITEUR. Cette ligne est activée lorsqu'on démarre le micro-
ordinateur ou lorsqu'on appuie sur le bouton RESET. Le programme MONITEUR se trouve dans une
mémoire de type ROM.
MASSE 1 40 VCC
AD14 2 39 AD15
AD13 3 38 A16 S3
AD12 4 37 A17 S4
AD11 5 36 A18 S5
AD10 6 35 A19 S6
AD9 7 34 BHE/ S7
AD8 8 33 MN – MX/
AD7 9 32 RD/
AD6 10 8086 31 HOLD (RQ/ GT0/)
AD5 11 30 HLDA (RQ/ GT1/)
AD4 12 29 WR/ (LOCK)
AD3 13 28 M – IO/ (S2/)
AD2 14 27 DT – R/ (S1/)
AD1 15 26 DEN/ (S0/)
AD0 16 25 ALE (QS0)
NMI 17 24 INTA/ (QS1)
INTR 18 23 TEST/
CLK 19 22 READY
MASSE 20 21 RESET
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 209
Les interruptions
Interruption Matériel (Hardware):
Interruption NMI:
L'activation de la ligne NMI sur le niveau haut provoque une Interruption Non Masquée. Dès
qu'un périphérique active cette ligne, le µP arrête immédiatement l'exécution du programme courante et
exécute la routine d'interruption NMI numéro 2 dont ces deux vecteurs IP_NMI et CS_NMI se trouvent
aux adresses 08h et 0Ah :
IP2 = IP_NMI 0000 :4*2 = 08h
CS2 = CS_NMI 0000 :4*2+2 = 0Ah
MASSE 1 40 VCC
AD14 2 39 AD15
AD13 3 38 A16 S3
AD12 4 37 A17 S4
Généralement, l'interruption NMI est utilisée pour AD11 5 36 A18 S5
des cas urgents comme la détection d’incendie, AD10
AD9
6 35 A19
BHE/
S6
S7
7 34
sauvegarde des données dès qu’il y a une coupure AD8 8 33 MN – MX/
d'alimentation,... AD7 9 32 RD/
AD6 10 8086 31 HOLD (RQ/ GT0/)
AD5 11 30 HLDA (RQ/ GT1/)
AD4 12 29 WR/ (LOCK)
AD3 13 28 M – IO/ (S2/)
AD2 14 27 DT – R/ (S1/)
AD1 15 26 DEN/ (S0/)
AD0 16 25 ALE (QS0)
NMI 17 24 INTA/ (QS1)
INTR 18 23 TEST/
CLK 19 22 READY
MASSE 20 21 RESET
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 210
Les interruptions
Interruption Matériel (Hardware):
Interruption INTR:
L'activation de la ligne INTR se fait sur le niveau haut. C’est une ligne d’interruption
masquable par un bit du registre d’état appelé IF ou Interrupt Flag. Lors de l’activation de cette ligne, le
microprocesseur consulte le bit IF et exécute une routine d’interruption s’il trouve IF=1, sinon
l’interruption est masquée. Ce bit peut être positionné par le programmeur avec les instructions suivantes:
CLI ; IF=0 ( interruption non autorisé)
STI ; IF=1 (interruption autorisé)
MASSE 1 40 VCC
AD14 2 39 AD15
Dans un ordinateur, plusieurs périphériques AD13 3 38 A16 S3
AD12 4 37 A17 S4
peuvent demander une interruption au AD11 5 36 A18 S5
microprocesseur sur la ligne INTR: TIMER, AD10 6 35 A19 S6
CLAVIER, IMPRIMANTE, LECTEUR AD9 7 34 BHE/ S7
AD8 8 33 MN – MX/
DISQUETTE, SOURIS,... Lorsque plusieurs AD7 9 32 RD/
interruptions se présentent, le microprocesseur AD6 10 8086 31 HOLD (RQ/ GT0/)
AD5 HLDA (RQ/ GT1/)
doit les traiter avec un ordre de priorité. AD4
11
12
30
29 WR/ (LOCK)
AD3 13 28 M – IO/ (S2/)
AD2 14 27 DT – R/ (S1/)
AD1 15 26 DEN/ (S0/)
AD0 16 25 ALE (QS0)
NMI 17 24 INTA/ (QS1)
INTR 18 23 TEST/
CLK 19 22 READY
MASSE 20 21 RESET
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 211
Les interruptions
Interruption Matériel (Hardware):
Interruption INTR:
Contrôleur Programmable d’Interruption PIC 8259:
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 212
Les interruptions
Interruption Matériel (Hardware):
Interruption INTR:
IRQ0
TIMER
IRQ1 D0
CLAVIER D1
IRQ2 D2
SOURIE
IRQ3 D3
COM2
D4
Bus de Données
COM1
IRQ4 PIC
D5
DISQUE DUR
IRQ5 8259 D6
IRQ6 D7
DISQUETTE
IRQ7
IMPRIMANTE
CS INTA
INTR
D2
D6
D0
D1
D3
D4
D5
D7
Décodage
µP 8086
d’Adresse
A12
A2
A7
A0
A1
A3
A4
A5
A6
A8
A9
A10
A11
A13
A14
A15
A16
A17
A18
A19
A0
A1
A2
A3
A4
A5
A6
A7
Bus d’Adresses
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 213
Les interruptions
Interruption Matériel (Hardware):
Interruption INTR:
0 IRQ0
TIMER
D0
0 IRQ1
CLAVIER D1
1 IRQ2 D2
SOURIE
0 IRQ3 D3
COM2
D4
Bus de Données
COM1
0 IRQ4 PIC
D5
DISQUE DUR
0 IRQ5 8259 D6
0 IRQ6 D7
DISQUETTE
0 IRQ7
IMPRIMANTE
CS INTA
INTR
D2
D6
D0
D1
D3
D4
D5
D7
Décodage
µP 8086
d’Adresse
A12
A2
A7
A0
A1
A3
A4
A5
A6
A8
A9
A10
A11
A13
A14
A15
A16
A17
A18
A19
A0
A1
A2
A3
A4
A5
A6
A7
Bus d’Adresses
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 214
Les interruptions
Interruption Matériel (Hardware):
Interruption INTR: Registre de Masque
0 IRQ0
TIMER b0 D0
0 IRQ1
CLAVIER b1 D1
1 IRQ2 D2
SOURIE 0
0 IRQ3 D3
COM2 b3
D4
Bus de Données
COM1
0 IRQ4
b4
PIC
D5
DISQUE DUR
0 IRQ5 8259 D6
b5
0 IRQ6 D7
DISQUETTE b6
0 IRQ7
IMPRIMANTE b7
CS INTA
INTR
D2
D6
D0
D1
D3
D4
D5
D7
Décodage
µP 8086
d’Adresse
A12
A2
A7
A0
A1
A3
A4
A5
A6
A8
A9
A10
A11
A13
A14
A15
A16
A17
A18
A19
A0
A1
A2
A3
A4
A5
A6
A7
Bus d’Adresses
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 215
Les interruptions
Interruption Matériel (Hardware):
Interruption INTR:
0 IRQ0
TIMER
D0
0 IRQ1
CLAVIER D1
1 IRQ2 D2
SOURIE
0 IRQ3 D3
COM2
D4
Bus de Données
COM1
0 IRQ4 PIC
D5
DISQUE DUR
0 IRQ5 8259 D6
0 IRQ6 D7
DISQUETTE
0 IRQ7
IMPRIMANTE
CS INTA
INTR
D2
D6
D0
D1
D3
D4
D5
D7
Décodage
µP 8086
d’Adresse
A12
A2
A7
A0
A1
A3
A4
A5
A6
A8
A9
A10
A11
A13
A14
A15
A16
A17
A18
A19
A0
A1
A2
A3
A4
A5
A6
A7
Bus d’Adresses
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 216
Les interruptions
Interruption Matériel (Hardware):
Interruption INTR:
0 IRQ0
TIMER
D0
0 IRQ1
CLAVIER D1
1 IRQ2 D2
SOURIE
0 IRQ3 D3
COM2
D4
Bus de Données
COM1
0 IRQ4 PIC
D5
DISQUE DUR
0 IRQ5 8259 D6
0 IRQ6 D7
DISQUETTE
0 IRQ7
IMPRIMANTE
CS INTA
INTR
D2
D6
D0
D1
D3
D4
D5
D7
Décodage IF = 0 ? Si oui
µP 8086
d’Adresse
A12
A2
A7
A0
A1
A3
A4
A5
A6
A8
A9
A10
A11
A13
A14
A15
A16
A17
A18
A19
A0
A1
A2
A3
A4
A5
A6
A7
Bus d’Adresses
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 217
Les interruptions
Interruption Matériel (Hardware):
Interruption INTR:
0 IRQ0
TIMER
D0
0 IRQ1
CLAVIER D1
1 IRQ2 D2
SOURIE
0 IRQ3 D3
COM2
D4
Bus de Données
COM1
0 IRQ4 PIC
D5
DISQUE DUR
0 IRQ5 8259 D6
0 IRQ6 D7
DISQUETTE
0 IRQ7
IMPRIMANTE
CS INTA
INTR
D2
D6
D0
D1
D3
D4
D5
D7
Décodage IF = 0 ? Si oui
µP 8086
d’Adresse
A12
A2
A7
A0
A1
A3
A4
A5
A6
A8
A9
A10
A11
A13
A14
A15
A16
A17
A18
A19
A0
A1
A2
A3
A4
A5
A6
A7
Bus d’Adresses
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 218
Les interruptions
Interruption Matériel (Hardware):
Interruption INTR:
0 IRQ0
TIMER
D0
0 IRQ1
CLAVIER D1
1 IRQ2 D2
SOURIE
COM2
0 IRQ3 D3
D4 n = 10
Bus de Données
COM1
0 IRQ4 PIC
D5
DISQUE DUR
0 IRQ5 8259 D6
0 IRQ6 D7
DISQUETTE
0 IRQ7
IMPRIMANTE
CS INTA
INTR
D2
D6
D0
D1
D3
D4
D5
D7
Décodage IF = 0 ? Si oui
µP 8086
d’Adresse
A12
A2
A7
A0
A1
A3
A4
A5
A6
A8
A9
A10
A11
A13
A14
A15
A16
A17
A18
A19
A0
A1
A2
A3
A4
A5
A6
A7
Bus d’Adresses
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 219
Les interruptions
Interruption Matériel (Hardware):
Interruption INTR:
0 IRQ0
TIMER
D0
0 IRQ1
CLAVIER D1
1 IRQ2 D2
SOURIE
COM2
0 IRQ3 D3
D4 n = 10
Bus de Données
COM1
0 IRQ4 PIC
D5
DISQUE DUR
0 IRQ5 8259 D6
0 IRQ6 D7
DISQUETTE
0 IRQ7
IMPRIMANTE
CS
n = 10
INTA
INTR
D2
D6
D0
D1
D3
D4
D5
D7
Décodage IF = 0 ? Si oui
µP 8086
d’Adresse
A12
A2
A7
A0
A1
A3
A4
A5
A6
A8
A9
A10
A11
A13
A14
A15
A16
A17
A18
A19
A0
A1
A2
A3
A4
A5
A6
A7
Bus d’Adresses
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 220
Les interruptions
Interruption Matériel (Hardware):
Interruption INTR:
0 IRQ0
TIMER
D0
0 IRQ1
CLAVIER D1
1 IRQ2 D2
SOURIE
COM2
0 IRQ3 D3
D4 n = 10
Bus de Données
COM1
0 IRQ4 PIC
D5
DISQUE DUR
0 IRQ5 8259 D6
0 IRQ6 D7
DISQUETTE
0 IRQ7
IMPRIMANTE
CS
n = 10
INTA
INTR
D2
D6
D0
D1
D3
D4
D5
D7
Décodage IF = 0 ? Si oui
µP 8086
d’Adresse
IP10 0000 :4*10 = 28h
A7
A0
A1
A3
A4
A5
A6
A8
A9
A10
A11
A13
A14
A15
A16
A17
A18
A19
A0
A1
A2
A3
A4
A5
A6
A7
Bus d’Adresses
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 221
Les interruptions
Interruption Matériel (Hardware):
Interruption INTR:
n i
numéro de l’interruption numéro matériel Origine matérielle
dans la table des vecteurs de l’interruption de l’interruption
(0 n 255) (IRQi)
8 0 TIMER
9 1 CLAVIER
10 2 SOURIE
11 3 COM2
12 4 COM1
13 5 DUSQUE DUR
14 6 DISQUETTE
15 7 IMPRIMANTE
Exemple:
L’interruption n = 8, corresponde à l’interruption du TIMER (IRQ0), a son
vecteur d’interruption situé aux adresses :
IP8 0000 :4*8 = 20h
CS8 0000 :4*8+2 = 22h
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 222
Les interruptions
Interruption Matériel (Hardware):
PIC 8259:
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 223
Les interruptions
Interruption Matériel (Hardware):
PIC 8259:
Registre de Masque: (Adresse E/S = 21h)
b7 b6 b5 b4 b3 b2 b1 b0
Interruption TIMER
IRQ7 IRQ6 IRQ5 IRQ4 IRQ3 IRQ2 IRQ1 IRQ0 Validée
27/11/2011 Généralités sur les microprocesseurs et les interfaces, Jamal KHALLAAYOUNE 224
Les interruptions
Interruption Matériel (Hardware):
PIC 8259: L2 L1 L0
0 0 0 IRQ0
Registre de Fin d’Interruption: (Adresse E/S = 20h) 0 0 1 IRQ1
0 1 0 IRQ2
R EOI SL 0 0 L2 L1 L0 0 1 1 IRQ3
1 0 0 IRQ4
1 0 1 IRQ5
1 1 0 IRQ6
Rotate End Of Specific
Level 1 1 1 IRQ7
Priorité tournante Interrupt Level
Niveau de l’IRQi