La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Système dexploitation : Assembleur Semaine 13 Les interruptions.

Présentations similaires


Présentation au sujet: "Système dexploitation : Assembleur Semaine 13 Les interruptions."— Transcription de la présentation:

1 Système dexploitation : Assembleur Semaine 13 Les interruptions

2 Les interruptions (1/4) 2 types dinterruptions – Interruptions matérielles : commandées par le câblage électrique (expl 1 : signal horloge : interrompt un prog + de 18 x / sec.) (expl 2 : clavier : si touche enfoncée, caract va dans buffer clavier) – Interruptions logicielles : commandées par le programme (fonctions utiles écrites par MS - expl : ouvrir un fichier - code en ROM ou RAM ) Les interruptions matérielles – Quand µpro exécute programme, il peut être interrompu par une interruption sur une des broches du µpro (INTR ou NMI - voir brochage du µpro en début du cours) – INTR = interruption masquable (dont on peut condamner laccès par logiciel : activer lindicateur IF - interrupt flag) – NMI = interruption non-masquable : on ne peut interdire son fonctionnement par logiciel - offre une très haute priorité – (pour INTR, il existe une broche INTA - interrupt acknowledge- que le µpro active quand il a reçu une demande dinterruption et quil est prêt à la prendre en compte) Les interruptions logicielles – instruction INT dans le programme en précisant le numéro dordre

3 Les interruptions (2/4) Vecteur dinterruptions – Une interruption logicielle est caractérisée par son numéro dentrée dans le vecteur des interruptions. – Ce vecteur occupe les 1024 premiers octets de la mémoire et est composé de 256 éléments. Chaque élément contient une adresse de la forme segment: offset (4 octets). Cette adresse est celle de la première instruction de la procédure de traitement de linterruption. – Remarque : Les interruptions 0 à 63 sont réservées par le système.(par ex : 21h : DOS) Traitement des interruptions logicielles – Une instruction INT suivie du numéro de linterruption survient – Le registre des indicateurs détat, CS et IP sont empilés (±idem CALL) – TF et IF sont remis à 0 – CS et IP sont chargés avec ladresse du programme dinterruption – Le programme se poursuit en CS:IP – Le programme de linterruption se termine par IRET – Extraction de la pile de IP, puis CS, puis les indicateurs – Le programme reprend en CS:IP

4 Les interruptions (3/4) Traitement des interruptions matérielles – Idem interruptions logicielles, mais linstruction en cours est terminée avant exécution de linterruption. Instructions spécifiques pour interruptions – INT (voir ci-dessus) – IRET (voir ci-dessus) – HLT (halte jusquà une interruption ou réinitialisation) – STI : mise à 1 de IF – CLI : mise à 0 de IF Utilisation des interruptions : – Pour accéder aux fonctions du système (ouvrir fichier, écrire un caractère…) écrites par Microsoft – Possibilité de détourner les interruptions de MS-DOS. Exemple le programme keyb fr détourne linterruption matérielle associée au clavier. Quand une touche est enfoncée, le programme (résidant) analyse la touche et transforme le a en q,... – Fonctions universelles du DOS (fonctions liées à INT 21h) – cf. page suivante

5 Les interruptions (4/4) Fonctions universelles du DOS (fonctions liées à INT 21h – numéro du service dans AH) – Fonction 4Ch : fin de programme avec code de retour via AL. Ce code de retour peut être testé avec la commande ERRORLEVEL – Fonction 09h : Affichage dune chaîne de caractères Envoie une chaîne de caractères à lécran à lemplacement actuel du curseur. (! Ne pas oublier le fin de chaîne $ - la chaîne à afficher doit se trouver à DS:DX) – Fonction 0Ah : Lecture dune chaîne de caractères au clavier La chaîne lue sera disponible à DS:DX 1er octet = longueur max de la chaîne à lire (avec ) 2ème octet = longueur de la chaîne lue La chaîne débute réellement au 3ème octet – Traitement de fichiers,…(3Ch, 5Bh,…) Autres interruptions utiles : – Test si caractère frappé au clavier : INT 16h, service 01h – Imprimer un caractère : INT 17h, service 0 (code ASCII du caractère dans AL)


Télécharger ppt "Système dexploitation : Assembleur Semaine 13 Les interruptions."

Présentations similaires


Annonces Google