Una interrupción es una condición que detiene temporalmente al microprocesador para trabajar en una tarea diferente y luego regresa a su tarea anterior. Una interrupción es un evento o señal que solicita la atención de la CPU. Esta parada permite que los dispositivos periféricos accedan al microprocesador. Cada vez que ocurre una interrupción, el procesador completa la instrucción actual e inicia la implementación de una rutina de servicio de interrupción (ISR) o controlador de interrupción. ISR es un programa que le dice al procesador qué hacer cuando ocurre la interrupción. Después de la ejecución de ISR, el control vuelve a la rutina principal donde fue interrumpido. En el microprocesador 8086 se realizan las siguientes tareas cuando el microprocesador encuentra una interrupción:
- El valor del registro de bandera se inserta en la pila. Significa que primero, el valor de SP (Puntero de pila) se reduce en dos y luego el valor del registro de bandera se empuja a la dirección de memoria del segmento de pila.
- El valor de la dirección de memoria inicial de CS (segmento de código) se inserta en la pila.
- El valor de IP (Instruction Pointer) se inserta en la pila.
- La IP se carga desde la ubicación de la palabra (tipo de interrupción) * 04.
- CS se carga desde la siguiente ubicación de palabra.
- Los indicadores de interrupción y trampa se restablecen a 0.
Los diferentes tipos de interrupciones presentes en el microprocesador 8086 están dados por:
- Interrupciones de hardware: las interrupciones de hardware son aquellas interrupciones causadas por cualquier dispositivo periférico al enviar una señal a través de un pin específico al microprocesador. Hay dos interrupciones de hardware en el microprocesador 8086. Están:
- NMI (interrupción no enmascarable): es una interrupción de hardware no enmascarable de un solo pin que no se puede desactivar. Es la interrupción de mayor prioridad en el microprocesador 8086. Después de su ejecución, esta interrupción genera una interrupción TIPO 2. IP se carga desde la ubicación de palabra 00008 H y CS se carga desde la ubicación de palabra 0000A H.
- INTR (Solicitud de interrupción): proporciona una sola solicitud de interrupción y se activa mediante el puerto de E/S. Esta interrupción se puede enmascarar o retrasar. Es una interrupción disparada por nivel. Puede recibir cualquier tipo de interrupción, por lo que el valor de IP y CS cambiará según el tipo de interrupción recibida.
- Interrupciones de software: son instrucciones insertadas dentro del programa para generar interrupciones. Hay 256 interrupciones de software en el microprocesador 8086. Las instrucciones son de formato tipo INT, donde el tipo va de 00 a FF. La dirección inicial va de 00000 H a 003FF H. Estas son instrucciones de 2 bytes. IP se carga desde el tipo * 04 H y CS se carga desde la siguiente dirección dada por (tipo * 04) + 02 H. Algunas interrupciones de software importantes son:
- El TIPO 0 corresponde a la división por cero (0).
- El TIPO 1 se utiliza para la ejecución de un solo paso para depurar el programa.
- El TIPO 2 representa NMI y se usa en condiciones de falla de energía.
- El TIPO 3 representa una interrupción de punto de quiebre.
- TIPO 4 es la interrupción de desbordamiento.
Publicación traducida automáticamente
Artículo escrito por harshit-chhabra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA