Microprocessore - 8086 interruzioni

Interruptè il metodo per creare un arresto temporaneo durante l'esecuzione del programma e consente ai dispositivi periferici di accedere al microprocessore. Il microprocessore risponde a quell'interruzione con unISR (Interrupt Service Routine), che è un breve programma per istruire il microprocessore su come gestire l'interruzione.

L'immagine seguente mostra i tipi di interrupt che abbiamo in un microprocessore 8086 -

Interrupt hardware

L'interruzione hardware è causata da qualsiasi dispositivo periferico inviando un segnale al microprocessore tramite un pin specificato.

L'8086 ha due pin di interrupt hardware, cioè NMI e INTR. NMI è un interrupt non mascherabile e INTR è un interrupt mascherabile con priorità inferiore. Un altro pin di interrupt associato è INTA chiamato riconoscimento dell'interrupt.

NMI

È un singolo pin di interrupt non mascherabile (NMI) con priorità maggiore del pin di richiesta di interrupt mascherabile (INTR) ed è di tipo 2 interrupt.

Quando viene attivato questo interrupt, vengono eseguite queste azioni:

  • Completa l'istruzione corrente in corso.

  • Inserisce i valori del registro Flag nello stack.

  • Inserisce nello stack il valore CS (segmento di codice) e il valore IP (puntatore di istruzione) dell'indirizzo di ritorno.

  • L'IP viene caricato dal contenuto della posizione della parola 00008H.

  • CS viene caricato dal contenuto della posizione della parola successiva 0000AH.

  • Il flag di interrupt e il flag trap vengono reimpostati su 0.

INTR

L'INTR è un interrupt mascherabile perché il microprocessore verrà interrotto solo se gli interrupt sono abilitati utilizzando l'istruzione set interrupt flag. Non deve essere abilitato utilizzando l'istruzione flag di interrupt di cancellazione.

L'interrupt INTR viene attivato da una porta I / O. Se l'interrupt è abilitato e l'NMI è disabilitato, il microprocessore completa prima l'esecuzione corrente e invia due volte "0" sul pin INTA. Il primo "0" significa che INTA informa il dispositivo esterno di prepararsi e durante il secondo "0" il microprocessore riceve gli 8 bit, diciamo X, dal controller di interrupt programmabile.

Queste azioni vengono eseguite dal microprocessore:

  • Prima completa l'istruzione corrente.

  • Attiva l'uscita INTA e riceve il tipo di interrupt, ad esempio X.

  • Il valore del registro flag, il valore CS dell'indirizzo di ritorno e il valore IP dell'indirizzo di ritorno vengono inseriti nello stack.

  • Il valore IP viene caricato dal contenuto della posizione della parola X × 4

  • CS viene caricato dal contenuto della posizione della parola successiva.

  • Il flag di interrupt e il flag trap vengono reimpostati su 0

Interruzioni software

Alcune istruzioni vengono inserite nella posizione desiderata nel programma per creare interruzioni. Queste istruzioni di interrupt possono essere utilizzate per testare il funzionamento di vari gestori di interrupt. Include:

INT- Istruzione di interrupt con numero di tipo

È un'istruzione a 2 byte. Il primo byte fornisce il codice operativo e il secondo byte fornisce il numero del tipo di interrupt. Ci sono 256 tipi di interrupt in questo gruppo.

La sua esecuzione include i seguenti passaggi:

  • Il valore del registro flag viene inserito nello stack.

  • Il valore CS dell'indirizzo di ritorno e il valore IP dell'indirizzo di ritorno vengono inseriti nello stack.

  • L'IP viene caricato dal contenuto della parola "numero di tipo" × 4

  • CS viene caricato dal contenuto della posizione della parola successiva.

  • Flag di interruzione e Flag trap vengono reimpostati su 0

L'indirizzo iniziale per l'interrupt di tipo 0 è 000000H, per l'interrupt di tipo1 è 00004H allo stesso modo per il tipo2 è 00008H e …… così via. I primi cinque puntatori sono puntatori di interrupt dedicati. cioè -

  • TYPE 0 l'interrupt rappresenta la divisione per zero situazione.

  • TYPE 1 l'interrupt rappresenta l'esecuzione in un unico passaggio durante il debug di un programma.

  • TYPE 2 l'interrupt rappresenta un interrupt NMI non mascherabile.

  • TYPE 3 interrupt rappresenta l'interruzione del punto di interruzione.

  • TYPE 4 l'interrupt rappresenta l'interrupt di overflow.

Gli interrupt dal Tipo 5 al Tipo 31 sono riservati ad altri microprocessori avanzati e gli interrupt dal 32 al Tipo 255 sono disponibili per gli interrupt hardware e software.

INT Istruzione di interruzione a 3 punti di interruzione

È un'istruzione a 1 byte con codice operativo CCH. Queste istruzioni vengono inserite nel programma in modo che quando il processore vi raggiunge, interrompe la normale esecuzione del programma e segue la procedura del punto di interruzione.

La sua esecuzione include i seguenti passaggi:

  • Il valore del registro flag viene inserito nello stack.

  • Il valore CS dell'indirizzo di ritorno e il valore IP dell'indirizzo di ritorno vengono inseriti nello stack.

  • L'IP viene caricato dal contenuto della posizione della parola 3 × 4 = 0000CH

  • CS viene caricato dal contenuto della posizione della parola successiva.

  • Flag di interruzione e Flag trap vengono reimpostati su 0

INTO - Interruzione su istruzione overflow

È un'istruzione di 1 byte e il loro mnemonico INTO. Il codice operativo per questa istruzione è CEH. Come suggerisce il nome, è un'istruzione di interrupt condizionale, cioè è attiva solo quando il flag di overflow è impostato su 1 e si dirama al gestore di interrupt il cui numero di tipo di interrupt è 4. Se il flag di overflow viene ripristinato, l'esecuzione continua al prossima istruzione.

La sua esecuzione include i seguenti passaggi:

  • I valori del registro flag vengono inseriti nello stack.

  • Il valore CS dell'indirizzo di ritorno e il valore IP dell'indirizzo di ritorno vengono inseriti nello stack.

  • L'IP viene caricato dal contenuto della posizione della parola 4 × 4 = 00010H

  • CS viene caricato dal contenuto della posizione della parola successiva.

  • Il flag di interrupt e il flag di trap vengono reimpostati su 0