Microprocesseur - 8086 Interruptions

Interruptest la méthode de création d'un arrêt temporaire pendant l'exécution du programme et permet aux périphériques d'accéder au microprocesseur. Le microprocesseur répond à cette interruption par unISR (Routine de service d'interruption), qui est un programme court pour indiquer au microprocesseur comment gérer l'interruption.

L'image suivante montre les types d'interruptions que nous avons dans un microprocesseur 8086 -

Interruptions matérielles

L'interruption matérielle est provoquée par n'importe quel périphérique en envoyant un signal via une broche spécifiée au microprocesseur.

Le 8086 possède deux broches d'interruption matérielle, à savoir NMI et INTR. NMI est une interruption non masquable et INTR est une interruption masquable de priorité inférieure. Une autre broche d'interruption associée est INTA appelée accusé de réception d'interruption.

NMI

Il s'agit d'une seule broche d'interruption non masquable (NMI) ayant une priorité plus élevée que la broche de demande d'interruption masquable (INTR) et elle est d'interruption de type 2.

Lorsque cette interruption est activée, ces actions ont lieu -

  • Termine l'instruction en cours en cours.

  • Pousse les valeurs du registre Flag sur la pile.

  • Pousse la valeur CS (segment de code) et la valeur IP (pointeur d'instruction) de l'adresse de retour sur la pile.

  • IP est chargé à partir du contenu de l'emplacement de mot 00008H.

  • CS est chargé à partir du contenu de l'emplacement de mot suivant 0000AH.

  • L'indicateur d'interruption et l'indicateur d'interruption sont remis à 0.

INTR

L'INTR est une interruption masquable car le microprocesseur ne sera interrompu que si les interruptions sont activées à l'aide de l'instruction set interruption flag. Il ne doit pas être activé à l'aide de l'instruction Clear interruption Flag.

L'interruption INTR est activée par un port d'E / S. Si l'interruption est activée et que NMI est désactivé, le microprocesseur termine d'abord l'exécution en cours et envoie deux fois «0» sur la broche INTA. Le premier «0» signifie que INTA informe le dispositif externe de se préparer et pendant le deuxième «0», le microprocesseur reçoit le 8 bits, disons X, du contrôleur d'interruption programmable.

Ces actions sont effectuées par le microprocesseur -

  • Termine d'abord l'instruction en cours.

  • Active la sortie INTA et reçoit le type d'interruption, disons X.

  • La valeur du registre d'indicateur, la valeur CS de l'adresse de retour et la valeur IP de l'adresse de retour sont transmises à la pile.

  • La valeur IP est chargée à partir du contenu de l'emplacement de mot X × 4

  • CS est chargé à partir du contenu de l'emplacement de mot suivant.

  • L'indicateur d'interruption et l'indicateur d'interruption sont réinitialisés à 0

Interruptions de logiciel

Certaines instructions sont insérées à la position souhaitée dans le programme pour créer des interruptions. Ces instructions d'interruption peuvent être utilisées pour tester le fonctionnement de divers gestionnaires d'interruption. Il comprend -

INT- Instruction d'interruption avec numéro de type

C'est une instruction sur 2 octets. Le premier octet fournit le code opération et le deuxième octet le numéro du type d'interruption. Il existe 256 types d'interruption dans ce groupe.

Son exécution comprend les étapes suivantes -

  • La valeur du registre d'indicateur est poussée sur la pile.

  • La valeur CS de l'adresse de retour et la valeur IP de l'adresse de retour sont transmises à la pile.

  • IP est chargé à partir du contenu du mot emplacement 'numéro de type' × 4

  • CS est chargé à partir du contenu de l'emplacement de mot suivant.

  • L'indicateur d'interruption et l'indicateur d'interruption sont réinitialisés à 0

L'adresse de départ pour l'interruption de type0 est 000000H, pour l'interruption de type1 est 00004H de même pour le type2 est 00008H et …… ainsi de suite. Les cinq premiers pointeurs sont des pointeurs d'interruption dédiés. c'est-à-dire -

  • TYPE 0 interruption représente une situation de division par zéro.

  • TYPE 1 interruption représente une exécution en une seule étape pendant le débogage d'un programme.

  • TYPE 2 interruption représente une interruption NMI non masquable.

  • TYPE 3 interruption représente l'interruption du point de rupture.

  • TYPE 4 interruption représente l'interruption de débordement.

Les interruptions du type 5 au type 31 sont réservées à d'autres microprocesseurs avancés, et les interruptions du type 32 au type 255 sont disponibles pour les interruptions matérielles et logicielles.

Instruction d'interruption à 3 points de rupture INT

C'est une instruction de 1 octet dont le code opération est CCH. Ces instructions sont insérées dans le programme de sorte que lorsque le processeur y parvient, il arrête l'exécution normale du programme et suit la procédure de point d'arrêt.

Son exécution comprend les étapes suivantes -

  • La valeur du registre d'indicateur est poussée sur la pile.

  • La valeur CS de l'adresse de retour et la valeur IP de l'adresse de retour sont transmises à la pile.

  • IP est chargé à partir du contenu de l'emplacement de mot 3 × 4 = 0000CH

  • CS est chargé à partir du contenu de l'emplacement de mot suivant.

  • L'indicateur d'interruption et l'indicateur d'interruption sont réinitialisés à 0

INTO - Interruption sur instruction de débordement

C'est une instruction de 1 octet et leur mnémonique INTO. Le code opération pour cette instruction est CEH. Comme son nom l'indique, il s'agit d'une instruction d'interruption conditionnelle, c'est-à-dire qu'elle n'est active que lorsque l'indicateur de débordement est mis à 1 et se branche sur le gestionnaire d'interruption dont le numéro de type d'interruption est 4. Si l'indicateur de débordement est réinitialisé, l'exécution se poursuit vers le instruction suivante.

Son exécution comprend les étapes suivantes -

  • Les valeurs de registre d'indicateur sont transmises à la pile.

  • La valeur CS de l'adresse de retour et la valeur IP de l'adresse de retour sont transmises à la pile.

  • IP est chargé à partir du contenu de l'emplacement de mot 4 × 4 = 00010H

  • CS est chargé à partir du contenu de l'emplacement de mot suivant.

  • L'indicateur d'interruption et l'indicateur d'interruption sont réinitialisés à 0