La sécurité fédérative - Bsides 2k16 - 14 Mai 2016
Chapitre 8 - les entrées - sorties
1. Echange de données – Les
entrées - sorties
TARIK ZAKARIA BENMERAR, PHD
DEPARTEMENT INSTRUMENTATION ET AUTOMATIQUE, USTHB
2. Définition
Une interface d’Entrées/Sorties est le moyen pour le
microprocesseur de communiquer avec le monde externe les
Périphériques (.clavier, écran, imprimante, modem, disques
etc..).
La communication se fait à travers une interface d’E/S qui est
un circuit considéré comme étant une mémoire dont le
contenu peut être lu (READ) et modifié (WRITE).
Cette mémoire est accessible à travers un espace d’adresse.
Dans ce chapitre on aborde l’espace d’adresse des ports d’E/S
exclusive à l’architecture x86.
3. Instructions d’accès aux ports d’E/S
Connexion entre microprocesseur et un
circuit d’entrée/sortie
4. Instructions d’accès aux ports d’E/S
Adresse du PORT est sur 2 octets
Lecture d’entrées/sorties
Adresse du PORT est sur 1 octet
MOV DX, 120h
IN AX, DX [120h] → AL
[121h] → AH
IN AL, DX [120h] → AL
IN AX, 30h [30h] → AL
[31h] → AH
IN AL, 30h [30h] → AL
5. Instructions d’accès aux ports d’E/S
Ecriture d’entrées/sorties
Adresse du PORT est sur 2 octets
Adresse du PORT est sur 1 octet
MOV DX, 120h
OUT 30h, AX AL → [30h]
AH → [31h]
OUT 30h, AL AL → [30h]
OUT DX, AX AL → [120h]
AH → [120h]
OUT DX, AL AL → [120h]
7. Interface Parallèle : le 8255
L’interface 8255 possède 3 ports d’entrées/sorties pour les données
(Programmables en entrée ou en sortie).
Port A : PA7…PA0.
Port B : PB7…PB0.
Port C : Il est divisé en deux parties :
Port Csup de 4bits : PC7..PC4.
Port Cinf de 4 bits : PC3..PC0.
De plus, l’interface possède un registre de contrôle configurer le mode de
fonctionnement (entrée ou sortie) de chacun des ports PA, PB, PCinf et
PCsup.
Ports de l’interface 8255
8. Interface Parallèle : le 8255
Ces 4 registres occupent 4 adresses dans l’ordre croissant suivant :
Port A : Adresse de base
Port B : Adresse de base + 1 (ou 2).
Port C : Adresse de base + 2 (ou 4).
Port de contrôle : Adresse de base + 3 (ou 6).
L’adressage
10. Interface Parallèle : le 8255
Exemple d’initialisation du port de contrôle
On veut configurer le 8255 tel que le port A est en sortie , port B en entrée , port C
haut entrée et port C bas sortie sachant que l’adresse de base est 300h.
La solution est comme suit :
Le registre de contrôle est à l’adresse 300h.
La valeur est
Le programme de configuration :
MOV AL, 8Ah ; Mot de commande
MOV DX, 303h ; adresse du port de commande
OUT DX,AL ; envoi du mot vers le registre de commande
11. Interface Parallèle : le 8255
Exemple de programme d’entrées/sorties
Soit le montage suivant ,ou une LED est
connectée sur le PORTB et 3 interrupteurs
K0,K1,K2 sur le PORT A.
Ecrire le programme de tel sorte que la
led connecte a PB0 ne s’allume que
lorsque l’on a la combinaison K0=1,
K1=1,K2=0
12. Interface Parallèle : le 8255
Exemple de programme d’entrées/sorties
portA equ 300h
portB equ 302h
portC equ 304h
controle equ 306H
mov dx,controle
mov al,90h
out dx, al
boucle :
mov dx,portA
in al,dx
and al,00000111B
cmp al,00000011B
jne faux
mov al,00000001B
jmp suite
faux :
mov al,00000000B
suite :
mov dx,portB
out dx,al
Jmp boucle