Microprocessador - interrupções 8086

Interrupté o método de criar uma parada temporária durante a execução do programa e permite que dispositivos periféricos acessem o microprocessador. O microprocessador responde a essa interrupção com umISR (Interrupt Service Routine), que é um programa curto para instruir o microprocessador sobre como lidar com a interrupção.

A imagem a seguir mostra os tipos de interrupções que temos em um microprocessador 8086 -

Interrupções de hardware

A interrupção de hardware é causada por qualquer dispositivo periférico, enviando um sinal através de um pino especificado para o microprocessador.

O 8086 tem dois pinos de interrupção de hardware, ou seja, NMI e INTR. NMI é uma interrupção não mascarável e INTR é uma interrupção mascarável com prioridade mais baixa. Mais um pino de interrupção associado é INTA chamado reconhecimento de interrupção.

NMI

É um único pino de interrupção não mascarável (NMI) com maior prioridade do que o pino de solicitação de interrupção mascarável (INTR) e é do tipo 2 de interrupção.

Quando esta interrupção é ativada, essas ações acontecem -

  • Conclui a instrução atual em andamento.

  • Empurra os valores do registrador Flag para a pilha.

  • Empurra o valor CS (segmento de código) e o valor IP (ponteiro de instrução) do endereço de retorno para a pilha.

  • O IP é carregado a partir do conteúdo da palavra local 00008H.

  • CS é carregado a partir do conteúdo da próxima palavra local 0000AH.

  • O sinalizador de interrupção e o sinalizador de trap são redefinidos como 0.

INTR

O INTR é uma interrupção mascarável porque o microprocessador será interrompido somente se as interrupções forem habilitadas usando a instrução set interrupt flag. Não deve ser habilitado usando a instrução Flag de interrupção de limpeza.

A interrupção INTR é ativada por uma porta de E / S. Se a interrupção estiver habilitada e o NMI estiver desabilitado, o microprocessador primeiro completa a execução atual e envia '0' no pino INTA duas vezes. O primeiro '0' significa que INTA informa o dispositivo externo para ficar pronto e durante o segundo '0' o microprocessador recebe os 8 bits, digamos X, do controlador de interrupção programável.

Essas ações são realizadas pelo microprocessador -

  • Primeiro completa a instrução atual.

  • Ativa a saída INTA e recebe o tipo de interrupção, digamos X.

  • O valor do registro da bandeira, o valor CS do endereço de retorno e o valor IP do endereço de retorno são colocados na pilha.

  • O valor IP é carregado do conteúdo da localização da palavra X × 4

  • CS é carregado a partir do conteúdo da localização da próxima palavra.

  • Sinalizador de interrupção e sinalizador de trap são redefinidos para 0

Interrupções de software

Algumas instruções são inseridas na posição desejada no programa para criar interrupções. Essas instruções de interrupção podem ser usadas para testar o funcionamento de vários manipuladores de interrupção. Inclui -

INT- Instrução de interrupção com número de tipo

É uma instrução de 2 bytes. O primeiro byte fornece o op-code e o segundo byte fornece o número do tipo de interrupção. Existem 256 tipos de interrupções neste grupo.

Sua execução inclui as seguintes etapas -

  • O valor do registro da bandeira é colocado na pilha.

  • O valor CS do endereço de retorno e o valor IP do endereço de retorno são colocados na pilha.

  • O IP é carregado a partir do conteúdo da palavra local 'tipo número' × 4

  • CS é carregado a partir do conteúdo da localização da próxima palavra.

  • Sinalizador de interrupção e sinalizador de armadilha são redefinidos para 0

O endereço inicial para a interrupção type0 é 000000H, para a interrupção type1 é 00004H, da mesma forma para type2 é 00008H e …… assim por diante. Os primeiros cinco ponteiros são ponteiros de interrupção dedicados. ie -

  • TYPE 0 interrupção representa a divisão por situação zero.

  • TYPE 1 interrupção representa a execução de uma etapa durante a depuração de um programa.

  • TYPE 2 interrupção representa interrupção NMI não mascarável.

  • TYPE 3 interrupção representa a interrupção do ponto de interrupção.

  • TYPE 4 interrupção representa interrupção de estouro.

As interrupções do Tipo 5 ao Tipo 31 são reservadas para outros microprocessadores avançados e as interrupções do Tipo 32 ao Tipo 255 estão disponíveis para interrupções de hardware e software.

INT 3-Break Point Interrupt Instruction

É uma instrução de 1 byte com o código operacional CCH. Essas instruções são inseridas no programa de forma que, quando o processador chegar lá, ele pare a execução normal do programa e siga o procedimento do ponto de interrupção.

Sua execução inclui as seguintes etapas -

  • O valor do registro da bandeira é colocado na pilha.

  • O valor CS do endereço de retorno e o valor IP do endereço de retorno são colocados na pilha.

  • O IP é carregado a partir do conteúdo da palavra localização 3 × 4 = 0000CH

  • CS é carregado a partir do conteúdo da localização da próxima palavra.

  • Sinalizador de interrupção e sinalizador de armadilha são redefinidos para 0

INTO - Interromper na instrução de estouro

É uma instrução de 1 byte e seu mnemônico INTO. O op-code para esta instrução é CEH. Como o nome sugere, é uma instrução de interrupção condicional, ou seja, está ativa apenas quando o sinalizador de estouro é definido como 1 e se ramifica para o manipulador de interrupção cujo número de tipo de interrupção é 4. Se o sinalizador de estouro for reiniciado, a execução continua para o próxima instrução.

Sua execução inclui as seguintes etapas -

  • Os valores do registro da bandeira são colocados na pilha.

  • O valor CS do endereço de retorno e o valor IP do endereço de retorno são colocados na pilha.

  • O IP é carregado a partir do conteúdo da localização da palavra 4 × 4 = 00010H

  • CS é carregado a partir do conteúdo da localização da próxima palavra.

  • O sinalizador de interrupção e o sinalizador Trap são redefinidos para 0