cours10_16116_H09 - Ordinateurs, Structure et Applications...

Info iconThis preview shows pages 1–4. Sign up to view the full content.

View Full Document Right Arrow Icon
GIF-16116 Cours 10, p.1 Etienne Tremblay Ordinateurs, Structure et Applications GIF-16116 Université Laval, Hiver 2009 Cours 10, Les interruptions
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
GIF-16116 Cours 10, p.2 Les interruptions du 8086 Une interruption interrompt l’exécution séquentielle des instructions par le CPU. Lors d’une interruption, l’exécution du programme principal est suspendue. L’interruption est exécutée, puis le programme principal est continué. Les sauts conditionnels ou inconditionnels ainsi que les appels de sous-routines ne sont pas des interruptions. Il existe 2 catégories d’interruptions: les interruptions matérielles et les interruptions logicielles. Les interruptions matérielles surviennent lorsque les lignes RST, NMI ou INTR du 8086 sont activées. Les interruptions logicielles surviennent lorsque l’instruction INT apparaît ou lors d’exceptions logicielles (exemples: débordement de pile (stack overflow), division par zéro…). Toutes les interruptions ont un numéro de 0 à 255d, sauf reset. Certains numéros sont fixés par le matériel, d’autres par les concepteurs du 8086 et finalement il en reste de disponibles pour le programmeur. Les interruptions ont des priorités. Elles sont, du plus prioritaire au moins prioritaire: Reset, Exceptions, INT, NMI et INTR. À l’intérieur d’une de ces catégories, l’INT avec le numéro le plus bas est habituellement la plus prioritaire. Une interruption de haute priorité peut interrompre une interruption de priorité inférieure. Une interruption de basse priorité ne peut pas interrompre une interruption de priorité égale ou supérieure. L’interruption Reset est la plus prioritaire.
Background image of page 2
GIF-16116 Cours 10, p.3 Interruptions vectorisée La table des vecteurs d’interruption contient l’adresse des instructions à exécuter lorsqu’un interruption survient. Pour chaque interruption, la table contient 4 bytes d’information: CS et IP. La taille de la table des vecteurs d’interruption est donc 256ints * 4bytes = 1Ko. La table des vecteurs d’interruption commence à l’adresse 00000h et elle finit à l’adresse 003FFh. Ne pas mettre de segments à cet endroit!!! # d'Int 4 04 05 06 07 Mémoire CS et IP pour Int 0 CS et IP pour Int 1 CS et IP pour Int 2 CS et IP pour Int 3 CS et IP pour Int 4 00000h 07564h (0706:0504) 00004h Code exécuté lorsque l'INT1 survient - Lorsqu’une interruption survient, le numéro de l’interruption permet de trouver l’emplacement des instructions à exécuter. Le numéro de l’interruption est multiplié par 4 afin de trouver l’adresse du CS et du IP à rechercher (IP est à l’adresse inférieure, suivi de CS). Puis un JMP à CS:IP est fait. CS:IP est un « vecteur » vers le code à exécuter afin de répondre à l’interruption. - Exemple: Si le contenu de la mémoire, à partir de
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 4
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 14

cours10_16116_H09 - Ordinateurs, Structure et Applications...

This preview shows document pages 1 - 4. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online