Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
22/02/2021 2
Cours ESP - Mohamed Sass Mohamdy
I – Introduction
Un système à base de microprocesseur peut comporter plusieurs
périphériques tels que : un écran, une souris, une imprimante, un
disque dure, un CNA (convertisseur numérique analogique), un CAN
etc ..
Pour dialoguer avec ces périphériques le microprocesseur a trois
façons de communiquer avec ces derniers :
En questionnant de façon continue le périphérique pour
vérifier que des données peuvent être lues ou écrites (Polling).
Le DMA :
En cas de transfert de données de grande quantité en
tre deux périphériques, il peut être plus efficace de laisser
communiquer entre eux les deux périphériques plutôt que
de solliciter le processeur.
22/02/2021
Cours ESP - Mohamed Sass Mohamdy 5
Remarque 1 : (Ordre de priorité)
Lorsque un périphérique reçoit des données pour le processeur, il
envoie au processeur un signal d'interruption.
Si celui-ci peut être interrompu (à condition qu'il ne soit pas
en train de communiquer avec un périphérique de plus haute priorité),
il stoppe la tâche en cours, sauve son
état (ces registres) en mémoire (la zone pile) et appelle la routine
correspondant au numéro d'interruption.
Remarque :
La reconnaissance de l'interruption NMI est généralement à
la fin du cycle de l'instruction en cours, or les instructions
du 8086 peuvent exiger un temps d'exécution plus ou moins
long selon le nombre de cycles machines (comme
l'instruction de multiplication) donc le temps de réponse va
dépendre de l'instruction en cours.
l'interruption.
Pendant la demande d'une interruption NMI tous les indicateurs
sont empilés pour sauvegarder leurs valeurs en cours, puis
l'indicateur IF (indicateur d'autorisation d'interruption :
Interruption Flag) est mis à zéro (ce qui interdit toute arrivée
de demande d'interruption sur la ligne INTR.
22/02/20
Cours ESP - Mohamed Sass Mohamdy 14
21
La figure précédente indique les connexions entre le microprocesseur et
le contrôleur d'interruptions.
Le contrôleur est relié aux interfaces gérant les périphériques par les
bornes IRQ (InteRrupt reQuest).
Entrée :
AH = 02 h
Sortie :
Si Flag Carry = 0 : Dans ce cas, tout va bien.
CH = Heures.
CL = Minutes.
DH = Secondes.
Si Flag Carry = 1 : Dans ce cas, la batterie de l'horloge est
déchargée. 24 22/02/2021
Remarques :
Le caractère de code ASCII 255 ne peut être sorti à l'aide de cette
fonction puisqu'il est interprété comme d'entrée d'un caractère.
Les contenus des registres AH, BX, CX, DX, SI, DI, BP, CS, DS, SS, ES et du
registre de flags ne sont pas modifiés par cette fonction.
27
22/02/2021
Cours ESP - Mohamed Sass Mohamdy
Exemple de programme : Lecture et affichage d'un caractère sur l'écran :
CODE SEGMENT
ASSSUME CS : CODE
PROG PROC
DEBUT:
MOV AH, 06H ; === préparer l'interruption de lecture d'un
MOV DL, 255
INT 21H
JZ DEBUT ; === si le bit ZF = 1 => aucune touche n'est appuyée
MOV DL, AL ; === afficher le caractère appuyer.
INT 21H
MOV AX, 4C00 H ; ==== retour au DOS
INT 21H
PROG ENDP
CODE ENDS
END PROG 28
Cours ESP - Mohamed Sass Mohamdy 22/02/2021
Int 21 h, Fonction 09 h : Sortie d'une chaîne de caractères
Cette fonction permet de sortir une chaîne de caractères sur le
périphérique de sortie standard. Comme ce périphérique standard peut
être redirigé sur un autre périphérique ou vers un fichier, il n'y
a aucune garantie que la chaîne de caractères apparaisse sur l'écran.
Entrée de la fonction :
AH = 09 h
DS = Adresse de segment de la chaîne de caractères
DX = Adresse d'offset de la chaîne de caractères
Sortie : Aucune
Cours ESP - Mohamed Sass Mohamdy 29 22/02/2021
Exemple : Affichage d'un message sur l'écran
DONNEE SEGEMENT
MESSAGE DB 'BONJOUR TOUT LE MONDE $', 13, 10
DONNEE ENDS
CODE SEGMENT
ASSUME CS : CODE, DS : DONNEE
PROG PROC
MOV AX , DONNEE
MOV DS , AX
LEA DX, MESSAGE ; == Pointé le message par DX
MOV AH , 09 H
INT 21 H ; == Afficher le message
MOV AX, 4C00 H ; Retour au DOS
INT 21 H
PROG ENDP
30
CODE ENDS 22/02/2021
Entrée :
AX = 0000 h
Sortie :
AX = FFFF h : dans ce cas, un driver de souris est installé.
BX = Nombre de boutons de la Souris.
AX = 0000 h : erreur, aucun driver de souris n'est installé.
Cours ESP - Mohamed Sass Mohamdy 32 22/02/2021
Remarques :
L'appel de cette fonction agit sur toute une série de paramètres
de la souris qui peuvent être fixés à l'aide des différentes
fonctions de la souris :
Remarques :
L'appel de cette fonction entraîne l'incrémentation d'un compteur
interne, en fonction duquel le curseur de la souris est ou non affiché sur
l'écran.
Si ce compteur contient la valeur 0, le curseur de la souris sera affiché
sur l'écran, alors que la valeur -1 a pour effet de le faire disparaître de
l'écran.
Lorsque la fonction 00h (Reset) est appelée, ce compteur est tout
d'abord fixé sur -1, pour prendre ensuite la valeur 0 lors
34
du premier
appel de cette fonction, ce qui se traduit par la réapparition du curseur
sur l'écran. Cours ESP - Mohamed Sass Mohamdy 22/02/2021
Int 33h, Fonction 03h : Lire la position de la souris et l'état
des boutons de la souris
L'appel de cette fonction fournit la position actuelle de la souris et l'état
des différents boutons de la souris.
Entrée :
AX = 0003 h
Sortie :
BX = Etat des boutons de la Souris (à partir de 1.0)
Bit Signification
Bit 0 1 = bouton gauche de la souris appuyé
Bit 1 1 = bouton droit de la souris appuyé
Bit 2 1 = bouton central de la souris appuyé
Bit 3-15 Aucune (0)
CX = Position horizontale de la Souris (à partir de 1.0)
35