1 / 5

Système d’exploitation : Assembleur

Système d’exploitation : Assembleur. Semaine 13 Les interruptions. Les interruptions (1/4). 2 types d’interruptions Interruptions matérielles : commandées par le câblage électrique ( expl 1 : signal horloge : interrompt un prog + de 18 x / sec.)

riona
Download Presentation

Système d’exploitation : Assembleur

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Système d’exploitation : Assembleur Semaine 13 Les interruptions

  2. Les interruptions (1/4) • 2 types d’interruptions • 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 l’accès par logiciel : activer l’indicateur 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 - “interruptacknowledge”- que le µpro active quand il a reçu une demande d’interruption et qu’il est prêt à la prendre en compte) • Les interruptions logicielles • instruction INT dans le programme en précisant le numéro d’ordre

  3. Les interruptions (2/4) • Vecteur d’interruptions • Une interruption logicielle est caractérisée par son numéro d’entré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 l’interruption. • 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 l’interruption 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 l’adresse du programme d’interruption • Le programme se poursuit en CS:IP • Le programme de l’interruption 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 l’instruction en cours est terminée avant exécution de l’interruption. • 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. • Exemplele programme keybfr détourne l’interruption 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 d’une chaîne de caractères Envoie une chaîne de caractères à l’écran à l’emplacement actuel du curseur. (! Ne pas oublier le fin de chaîne $ - la chaîne à afficher doit se trouver à DS:DX) • Fonction 0Ah : Lecture d’une 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 <CR>) 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)

More Related