Vous êtes sur la page 1sur 21

1/ 21

Chapitre 9 : Les Interruptions et le circuit PIC


8259

Section 9.1: Les interruptions avec le P8088/86

Section 9.2: Le Contrôleur d’interruption programmable


PIC8259

Section 9.3: Le PIC8259 dans 8088-IBM PC/XT

Section 9.4: Les interruptions avec les P80x86-PCs

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


2/ 21

Objectives
Les objectifs de ce chapitre sont:

- Expliquer comment IBM-PC exécute les interruptions en utilisant


la table des vecteurs d’interruptions et les routines d’interruption.
- Lister les différences entre interruptions et les instructions CALL.

- Différencier entre les interruptions Hardware et Software.


- Examiner ISR (Routine Service d’Interruption) pour une interruption donnée

- Décrire la fonction de chaque PIN du PIC 8259.


- Expliquer l’objectif des 4 mots de contrôle du PIC 8259 et montrer
comment sont-ils programmés.
- Montrer comment le PIC 8259 est interfacé dans IBM PC/XT et
IBM PC/AT

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


3/ 21

Section 9.1: Les interruptions avec le P8088/86

C’est quoi une interruption?

C’est un avènement extérieure qui informe la CPU qu’un circuit externe (DMA, E/S, …) a besoin de
son service.

Le P8088/86 est muni d’un total de 256 interruptions: INT 00, … INT FF, appelés parfois TYPEs.

INT N Addresse
Logique
INT 00 0000:0000
Quand une interruption est exécutée, le P automatiquement sauvegarde
INT 01 0000:0004
Dans la pile les registres FR, IP, et CS, et se dirigera vers une location INT 02 0000:0008
Mémoire dont l’adresse physique est : 00004 x NN, NN étant le numéro INT NN 0000:[00NNx4]
de
INT FF 0000:03FC
l’interruption [NN = 0  FF].

Table des vecteurs


d’Interruptions

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


4/ 21

Les interruptions avec le P8088/86


ISR (Interrupt Service Routine)
CS
Pour chaque interruption, il existe un programme associé avec, INT FF
IP
qui s’exécute pour effectuer un service donné (ISR).
Les adresses de ISR sont données par IP et CS (2 octets chacun),
stockées au bas de l’espace Mémoire  1024 octets sont réservés
pour la Table des vecteurs d’Interruptions 000C
CS
INT 02 NMI
0008 IP
Différence entre INT et l’Instruction CALL FAR CS
INT 01 Single_Step
0004 IP
1. Call Far sauvegarde CS et IP et saute vers n’importe quelle CS
location de la mémoire 1Mo. Alors que INT NN saute vers des INT 00 /0
locations fixées dans la Table des vecteurs d’Interruptions pour obtenir 0000 IP
l’adresse de ISR.
2. Call Far est utilisée par le programmeur en une séquence
d’instructions (de son programme). Alors qu’une interruption
hardware peut attirer l’attention de la CPU a n’importe quel moment.
3. Call Far ne peut être masquée contrairement à INT NN.
4. Call Far sauvegarde CS et IP de la prochaine instruction alors que INT NN, sauvegarde aussi FR.

5. Call Far  RETF INT NN  IRET

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


5/ 21

Les interruptions avec le P8088/86


Catégories d’interruptions

INT NN est une instruction à 2 octets (Opcode + Nombre). Il existe 256 INTs (Software + Hardware)

Interruptions Hardware INTA,  Output de CPU


INTR,  Input vers CPU et Masquée par CLI et STI
NMI  Input vers CPU et non Masquée

1. Finir l’instruction en cours.


Une INT02 (embarqué) est désignée par 2. PUSH FR, CS, IP dans la pile
Intel dans les P80x86 pour NMI. 3. Saute à la Table des vecteurs d’Interruptions

Quand NMI est activée (haut), CPU  4. Chercher CS:IP pour exécuter l’ISR associé
location mémoire 00008 pour obtenir 5. A la fin d’ISR  l’instruction IRET  CPU à POPer
CS:IP (00008:0000B) de la ISR associé à NMI. de la pile FR CS, IP.
6. CPU continue son programme normalement.
Avec INTR plusieurs types sont associés
(INT NN), via PIC8259.

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


6/ 21

Les interruptions avec le P8088/86


Interruptions Software ISR est appelé suite à l’exécution d’une instruction INT NN

Exemples: Appels DOS (INT 21H), Interruptions vidéo (INT10H), …

Quelques INT NN sont prédéfinies comme INT00 (/0), 01(Trace), 03(Point d’arrêt), et 04
(dépassement).
Les autres (05FF) sont utilisés pour implémenter des interruptions Software et Hardware.
Interruptions et le registre FR 15 11 9 8 0

OF IF TF

Processus d’Interruption ISR Trace (Single-Stepping) 


Exécution instruction/instruction
1. FR  Pile (SP  SP –2). Pour voir le contenu des
Registres.
2. IF et TF  0  Le système ignore les INTR et désactive les
‘Single-Stepping’ pendant l’exécution de ISR
3. CS  Pile (SP  SP –2), IP  Pile (SP  SP –2).
4. Le type d’INT (NN) x 4 pour obtenir l’adresse (CS:IP) de l’ISR de Ignorer INTR, pas d’effet sur NMI
la Table des vecteurs d’Interruptions. CLI  IF=0
5. CPU commence à exécuter le programme ISR (à partir de STI  IF=1  Permettre les INTR
CS:IP)
6. La dernière instruction d’ISR est IRET pour: Pile  CS, IP, FR.
R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs
7/ 21

Les interruptions avec le P8088/86


Les fonctions de INT 00  INT 04 Des taches prédéfinis

MOV AL, 87h


INT 00 (Division / 0) XOR CL, CL INT 00  ISR(Message: DIVIDE ERROR)
DIV CL

INT 01 (Single-Stepping) 1. TF du FR  1
2. CPU  CS:IP = 00004 pour chercher l’adresse de ISR associé
(DUMPer le contenu des registres sur l’écran)

INT 02 (NMI) Si le Pin NMI est ‘1’  CPU  CS:IP = 00008  ISR associée

INT 03 (BreakPoint) Comme INT 01 mais arrêt après un bloc d’instructions  Debuguage

INT 04 (Dépassement) Dépassement de capacité pour les nombres signés

L’instruction INTO  tester OF. MOV AL, +87h


MOV BL, +64h
Si ‘1’  INT04 activé (CS:IP=00010H) Message affiché ADD AL, BL
Sinon INTO  NOP INTO

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


8/ 21

Les interruptions avec le P8088/86


INT NN CS:IP Objectif
EXEMPLE
INT 05 F000:FF54 Imprimer l’ecran
INT 06-07 / Réservés
C> debug
INT 08 F000:FEA5 IRQ0 de PIC8259 (INT BIOS Timer) -D 0000:0000-002F
INT 09 F000:F987 IRQ1 de PIC8259 (INT BIOS Clavier)
0000:0000 E8 56 2B 02 56 07 70 00
INT 0A / IRQ2 de PIC8259 (Réservé) C3 E2 00 F0 56 07 70 00
0000:0010 56 07 70 02 ….
INT 0B / IRQ3 de PIC8259 (Réservé pour Port Série COM2) 0000:0020 A5 FE 00 F0 ….
INT 0C IRQ4 de PIC8259 (Réservé pour Port Série COM1)
ISR(INT00)  CS:IP = 022Bh:56E8h
INT 0D IRQ5 de PIC8259 (Réservé pour Disque Dur XT)
INT 0E F000:EF57 IRQ6 de PIC8259 (Lecteur Disquette) ISR(NMI)  CS:IP = F000h:E2C3h
INT 0F 0070:0147 IRQ7 de PIC8259 (Port Parallèle Imprimante LPT1)
INT 10 BIOS Vidéo E/S ISR(INT08)  CS:IP = F000h:FEA5h

8 x 4 = 20H

INT 86-FF / Interpréteur BASIC NOTE:

INT F1-FF / Non utilisées INT00  07998H  Espace MS DOS


NMI FE2C3H  Espace BIOS ROM

Système d’Interruption d’IBM PC/XT

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


9/ 21
Section 9.2: Le Contrôleur d’interruption
programmable PIC8259

Pourquoi PIC? Pour permettre d’étendre le nombre d’interruptions Hardware

VCC GND
A0 IR7
CS 1 28 VCC
IR6
WR 2 A0
IR5
RD INTA D7 .. D0

IR4
D7 IR7
IR6 IR3
D6
8259A
IR2
D5
D4 PIC IR5
IR4
IR3
P
WR
RD
IR1
IR0
D3
D2
D1
8259A IR2
IR1 I/F INTA
D0 IR0 INT
CAS 0 INT CAS 0, 1, 2
CAS 1 SP/EN (I/F Cascade)
14 15 CAS 2 CS
GND
SP/EN

Circuit PIC 8259


CAS0, 1, 2: Des PIC8259s en cascade pour étendre le nombre d’interruptions du P8088/86 jusqu’à
64.
En mode Esclave, les CAS0,1,2 sont ignorés.
SP/EN (Slave Programming/Enable): (SP/EN =‘1’  Maître, SP/EN = ‘0’  Esclave).

IR0-IR7: Interruptions Hardware. Si ‘1’, le P8088/86 saute vers la location de l’interruption correspondante.
Pour chaque IR existe une adresse physique correspondante dans la Table des vecteurs d’Interruptions
R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs
10/ 21

Le Contrôleur d’interruption programmable PIC8259

Initialisation du PIC8259 Il existe 4 mots (octets) de contrôle associés avec PIC8259


ICW3 est seulement utilisé en mode Maître (Cascade).

D6 ...... CS A0 Initialisation
A0 D7 D2 D1 D0
0 0 0 0 1 LTIM 0 SNGL ICW4 0 0 ICW1
0 1 ICW2, ICW3, ICW4
ICW1
1 x 8259 non sélectionné

NOTE:
‘1’ pas besoin
Toujours ‘1’ pour de ICW4 Si A7-A1 = 0010011 permettent de sélectionner
ICW1 ( différencier PIC8259  les adresses de ICW1, 2, 3, 4 sont:
de OCW2)
‘0’ mode Cascade 26H  ICW1 et
Pour les P80x86 ‘1’ Trig Niveau (IRx)
Sinon PIC est seul 27H  ICW2, 3, 4
Sinon Trig Edge

A0 D7 D6 ...... D2 D1 D0 A noter que ICW2, 3, 4 ont une même adresse


Après la programmation de ICW1, c’est autour
1 T7 T6 T5 T4 T3 T2 T1 T0 de ICW2, ensuite ICW3, ensuite ICW4 (au besoin).

ICW2

IR X (X = 000  111)

INT NN
11/ 21

Le Contrôleur d’interruption programmable PIC8259

A0 D7 D6 ...... D2 D1 D0 ICW3 utilisé uniquement quand plusieurs


1 S7 S6 S5 S4 S3 S2 S0 PICs sont cascadés. Un PIC  8 PICs
S1  64 Interruptions Hardware.
ICW3 (Mode Cascade Maître)

‘1’  IR X possède un circuit esclave

A0 D7 D6 ...... D2 D1 D0 ‘000’  ‘111’ : Numéro de IR du PIC


1 Maître qui est connecté vers Ce PIC
0 0 0 0 0 ID2 ID1 ID0 Esclave

ICW3 (Mode Cascade Esclave)

BUF MS Modes: (Non)Buffer


A0 D7 D6 ...... D2 D1 D0 0 x Mode NonBuffer
1 0 0 0 SFNM BUF MS AEOI PM 1 0 Mode Buffer Esclave

ICW4 1 1 Mode Buffer Maître


(Pour des systèmes qui nécessitent des Buffers pour
PM = ‘1’ pour P80x86 sinon 8085 leur bus de données avec BiDirec ‘Transceivers’)
AEOI = ‘1’ auto EOI sinon normal EOI SFNM (Special Fully Nested Mode), uniquement quand le PIC
(Automatic End Of Interrupt, sinon Instruction EOI avant IRET dans ISR) est en mode Maître. SFNM = ‘1’ quand Mode ‘Special Fully Nested’

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


12/ 21

Le Contrôleur d’interruption programmable PIC8259

Exemple Initialisation du PIC8259 avec les données suivantes:


CPU8088/86, Seul (pas de Cascade), IRs en Trigger Niveau, INT50H sur IR0. Le
PIC8259 étant en mode Buffer Esclave avec EOI normale.

ICW1  000 1 1 0 1 1  1BH (Besoin du ICW4, PIC Seul, 0 pour x86, IRx Trig Niveau, 1, 000 pour x86)
ICW2  01010 000  50H (000  IR0, 0101 0000 INT 50H)
ICW3  Pas Besoin, un seul PIC est utilisé
ICW4  0000 1001  09H (P8088/86, Normal EOI avant IRET, Mode Buffer Esclave, Non Imbriqué, 000 )

Voici le programme d’Initialisation du PIC8259 avec les adresses suivantes 

MOV AL, 1BH ; ICW1 CS A7-A1 = 1010111 Initialisation


A0
OUT AEH, AL ; Vers Port AEH
MOV AL, 50H ; ICW2 0 0 ICW1  AEH
OUT AFH, AL ; Vers Port AFH 0 1 ICW2, ICW3,
MOV AL, 09H ; ICW4 ICW4  AFH
OUT AFH, AL ; Vers Port AFH

Note:
Si INT 50H est assigné à IR0 
IR1IR7  INT 51H  INT 57H
 Adresses Logiques (des IR0:IR7): 0000:0140H  0000:015C (4 Octets chacune)
R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs
13/21

Le Contrôleur d’interruption programmable PIC8259

Priorité des Interruptions Si plusieurs IRx (X=07) sont activées  rôle du OCW
(Opération Command Word)

CS A0 Initialisation
Après Initialisation (avec ICW1, ICW2, ICW4), le P8088/86 est prêt
0 0 OCW2, OCW3
pour recevoir des interruptions, via les pins IRx du PIC8259.
0 1 OCW1
Ensuite OCW est envoyée pour masquer n’importe quel IRx, 1 x 8259 non sélectionné
ou bien changer la priorité assignée à chacun des IRx (7  NOTE:
0).
Il est à noter l’existence de 3 registres dans le PIC8259 Si A7-A1 = 0010011 permettent de sélectionner
PIC8259  les adresses de OCW1, 2, 3 sont:
ISR, IRR, et IMR
26H  OCW2 et OCW3
27H  OCW1
Logique de Contrôle
Bus Interne

OCW1 Masquer les IRx


A0 D7 D6 ...... D2 D1 D0
IR7
IR6
IRR IR5 M M M M M M M
ISR Résolution Interrupt IR4
1
7 6 5 4 3 2
M
1 0
In-Service IR3
Register
Priorité Request
IR2 OCW1
Register IR1
IR0
‘1’  Interruption Masquée
IMR Interrupt Mask Register
Si nous désirons savoir lesquelles IRx sont activées
ou pas  Lire OCW1 (IN AL, 27H)  contenu de IMR
Diagramme Interne du PIC8259
R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs
14/ 21

Le Contrôleur d’interruption programmable PIC8259

OCW2 Assigner une Priorité Spécifique aux IRx


A0 D7 D6 ...... D2 D1 D0

R S
E
L
Exemple: Si ‘011’  Niveau des Priorités: IR3, IR4, IR5, IR6, IR7, IR0, IR1, IR2
0
L
O 0 0
2
L L
(A noter que: Dans IBM PCs 00100000B est
I 1 0
le contenu par défaut de OCW2)
OCW2

XXX Fonction
001 Commande EOI non Suivre un ordre de priorités des IRx par défaut: IR0  IR7
spécifique

011 Commande EOI spécifique

101 Rotation sur Commande EOI


non spécifique

100 Rotation dans le mode EOI


automatique (Valide) Si IRx donnée est servis  elle devient la plus basse priorité
Jusqu’à ce que les autres seront servis  éviter la monopolisation.
000 Rotation dans le mode EOI
automatique (Non Valide)

111 Rotation sur Commande EOI


Suivre un ordre spécifique de priorités des IRx autre que le
spécifique
défaut: IR0  IR6
110 Valider une commande de
priorité

010 /

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


15/ 21

Le Contrôleur d’interruption programmable PIC8259

L’importance de la commande EOI

Après chaque programme ISR (Interrupt Service Routine), et avant l’instruction IRET, il convient d’insérer:
MOV AL, 20H ; EOI de OCW2 (A noter que: 00100000B est le contenu par défaut de OCW2)
OUT 26H, AL ; vers le port désigné pour OCW2

Pourquoi?

1. Assumant que PIC8259 est initialisé à sa configuration par défaut: IR0  IR7 (Fully Nested Mode)
2. IR3 activée et la CPU répond par INTA et va vers la table des vecteurs d’interruptions et  ISRIR3
3. Une fois INTA reçue, PIC8259 met à ‘1’ le bit associé à IR3 dans le registre ISR (In-Service
Register) pour indiquer que IR3 est en service.
4. L’instruction EOI (MOV AL, 20H et OUT 26H, AL) permet de RESETer à ‘0’ le bit associé à IR3 dans
le registre ISR, pour permettre à IR3 de revenir la prochaine fois.
5. Sinon pour le PIC l’IR3 est en train de s’exécuter, et la CPU en allant au programme principal,
après le IRET de ISRIR3, ne peut servir à nouveau IR3 car le bit associé à IR3 dans
le registre ISR est toujours ‘1’.
6. Par conséquent les autres IRx de moindre priorités (IR4 IR7) seront empêchées d’être servis
également. Mais les IR2  IR0 seront servis, puisque prioritaires, pendant que IR3 est faussement
servis.

R. Beguenane, UQAC, 2002/2003 Systèmes à microprocesseurs


16/ 21

Le Contrôleur d’interruption programmable PIC8259

OCW3 Lire les contenu des registres ISR et IRR

A0 D7 D6 ...... D2 D1 D0
ES S
0 0 1 P RR RIS
0 M M
M M

OCW3
’11’  Lire ISR
’01’  Lire IRR
’00’ et ’10’  Pas d’action
A noter que OCW1  lire IMR
17/ 21

Section 9.3: Le PIC8259 dans 8088-IBM PC/XT

P8088 IBM PC/XT utilise un PIC8259 pour étendre les interruptions hardware vers 8, alors que
ceux munis de P80286- IBM PC/AT en utilise 2 pour étendre les interruptions hardware vers
15.
AEN A9 A8 A7 A6 A5 A4 …A1 A0 HEX Fonction
D0
1 0 0 0 0 1 X XXX0 20 Adresse du Port de ICW1 D7
D7 … D0
0 0 0 0 A0 A0

1 0 0 0 0 1 0 0 0 01 21 Port Adresse de ICW2,3,4

8259A
1 0 0 0 0 1 0 0 0 00 20 Port Adresse de OCW2, 3 A5 A
A6 B Y0
Y1 CS
1 0 0 0 0 1 0 0 0 01 21 Port Adresse de OCW1 A7 C
LS138 Y2
A8 G2A Y3 RD WR
Y4
Adresse des Ports ICWs et OCWs A9 G2B Y5
Y6
AEN G1 Y7

Interruptions Hardware d’IBM-PC/XT-8088 MEMR


INT 08H  IRQ0, INT 09H  IRQ1, … INT 0FH  IRQ7 MEMW

C’est la fonction de ICW2 d’informer 8259 à quelles INT?? Correspondent les IRQ0  IRQ7
Autrement ICW2 est le numéro d’interruption INT pour IR0 qui dans le cas d’IBM PC/XT est INT08.
ICW1  000 1 0 0 1 1  13H (Besoin du ICW4, PIC Seul, 0 pour x86, IRx Trig Edge, 1, 000 pour x86) MOV AL, 13H ; ICW1
OUT 20H, AL ; ICW1
ICW2  00001 000  08H, … (INT 08H  IRQ0, INT 09H  IRQ1, … INT 0FH  IRQ7) MOV AL, 8 ; INT08
OUT 21H, AL ; ICW2
ICW3  Pas Besoin, un seul PIC est utilisé (plusieurs PICs en mode Esclave/Maître seulement pour 80x86)
MOV AL, 9 ; ICW4
ICW4  0000 1001  09H (P8088/86, Normal EOI avant IRET, Mode Buffer Esclave, Non Imbriqué, 000 ) OUT 21H, AL
18/ 21

Le PIC8259 dans 8088-IBM PC/XT

Déroulement d’une Interruption Hardware S1, S2, S3  000

IOB 1 20 VCC
INTA:force 8259 à poser D0D7
CLK 2 S0
(dépend de ICW2: INT NN) sur le bus
VCC CS S1 S2
28 1 de données (pour être Latché)
A0 2 WR DT/R MCE/PDEN
GND 1 40 VCCALE
INTA RD
AD14 2 39 AD15
8288 DEN
IR7 D7 AEN CEN
IR6 D6 AD13 A16/S3
MRDC INTA
IR5
IR4
IR3
PIC D5
D4
AD12
AD11
A17/S4
AMWC
A18/S5
MWTC 9 12
IORC
D3 AD10 AIOWC
IR2
IR1
8259A D2
D1
AD9
A19/S6
GND
BHE/S7
10 11 IOWC

IR0 AD8 MX
D0
INT CAS 0 AD7 RD
SP/EN CAS 1 AD6 RQ/GT0
CAS 2 15 14 GND AD5 RQ/GT1
AD4 LOCK
AD3 S2
Circuit PIC 8259 AD2
AD1
CPU S1
S0
AD0
NMI 8086 QS0
QS1
P8088/86  FR (Pile),
INTR (16-BITS Int.) TEST
CLK 19 22 READY clear IF (Désactive
GND 20 21 RESET d’autres requête INTs), et
 CS, IP actuels (Pile).
Cet octet sera décodé (INT NN x4) pour calculer P8088/86 lit CS:IP de lSRoutine à partir
le vecteur d’interruption correspondant. de la table des vecteurs d’INTs, pour l’exécuter
19/ 21

Le PIC8259 dans 8088-IBM PC/XT

Sources des Interruptions Hardware IBM PC/XT possède, via PIC8259, 8 interruptions
hardware IR0IR7, en plus de NMI du P8088/86.
IR0:R7

INT 08 IRQ0 mettre à jour TOD du canal 0 du T8253


INT 09 IRQ1 Donnée Clavier
INT 0A IRQ2 Réservé

62-Slot Expansion
INT 0B IRQ3 Port Série COM2)
INT 0C IRQ4 Port Série COM1
INT 0D IRQ5 Port Parallèle LPT2
INT 0E IRQ6 Controleur Lecteur Disquette
INT 0F IRQ7 Port Parallèle Imprimante LPT1

NMI Pas besoin de INTA et ne peut être masquée (CLI) contrairement à INTR (IR0:IR7)
20/ 21
Section 9.4: Les interruptions avec les
P80x86-PCs
28 28
INTA INTA
IR15 IR7
IR14 IR6
IR13
IR12
IR11
PIC IR5
IR4 PIC INTA
P
IR3
8259
IR2
IR10
IR9
INT
IR1
8259 INT INT
80x86
IR8 Esclave IR0 Maitre (IBM PC/AT)
CAS 0 CAS 0
CAS 1 CAS 1
‘0’ SP/EN CAS 2 ‘1’ SP/EN CAS 2 NMI

MOV AL, 11H ; ICW1, Edge, ICW4 MOV AL, 11H ; ICW1, Edge, ICW4
OUT A0H, AL ; Port adresse ICW1 OUT 20H, AL ; Port adresse ICW1

MOV AL, 70H ; ICW2, INT type 70 (70-77) MOV AL, 8 ; ICW2, INT type 8 (8-F)
OUT A1H, AL ; Port adresse ICW2 OUT 21H, AL ; Port adresse ICW2

MOV AL, 02H ; ICW3, Esclave niveau 2 MOV AL, 04H ; ICW3, Maître niveau 2
OUT A1H, AL ; Port adresse ICW3 OUT 21H, AL ; Port adresse ICW3
MOV AL, 01H ; ICW4, NonBuffer, Mode x86 MOV AL, 01H ; ICW4, NonBuffer, Mode x86
OUT A1H, AL ; Port adresse ICW4 OUT 21H, AL ; Port adresse ICW4
21/ 21

Les interruptions avec les P80x86-PCs


PRIORITES DES INTs
INT 08 IRQ0 mettre à jour TOD du canal 0 du T8253
Si l’instruction INT (INT 20H), NMI, et
INT 09 IRQ1 Donnée Clavier INTR (IRQ5) en même temps?
INT 0A IRQ2 Réservé
ORDRE Interruption

62-Slot Expansion
INT 0B IRQ3 Port Série COM2)
1 Instruction INT (Exception)
INT 0C IRQ4 Port Série COM1
2 Single-Step (Debuggage)
INT 0D IRQ5 Port Parallèle LPT2
3 NMI
INT 0E IRQ6 Contrôleur Lecteur Disquette
4 Dépassement
INT 0F IRQ7 Port Parallèle Imprimante LPT1
5 INTR
IRQ0
INT 70 IRQ8 CMOS Horloge
IRQ1
INT 71 IRQ9 Re-direction SW vers INT10 (IRQ2) IRQ8
INT 72 IRQ10 Valable Utilisateur IRQ9

36-Slot Expansion
INT 73 IRQ11 Valable Utilisateur .
.
INT 74 IRQ12 Souris (PS/2)
.
INT 75 IRQ13 Co-Proc Math IRQ15
INT 76 IRQ14 Contrôleur Disque Dur IRQ3
INT 77 IRQ15 Valable Utilisateur IRQ4
.
.
.
IRQ7

Vous aimerez peut-être aussi