Interrupción no enmascarable

Una interrupción no enmascarable (o NMI) es un tipo especial de interrupción usada en la mayoría de los microordenadores como el IBM PC y el Apple II.

Una interrupción no enmascarable causa que la CPU deje lo que está haciendo, cambie el puntero de instrucción para que apunte a una dirección particular y continúe ejecutando el código de esa dirección. Se diferencia de los otros tipos de interrupción en que los programadores no pueden hacer que la CPU las ignore, aunque algunos ordenadores pueden por medios externos bloquear esa señal, dando un efecto similar al resto de las interrupciones.

Al no poderse desactivar son empleadas por dispositivos para los que el tiempo de respuesta es crítico, como por ejemplo el coprocesador matemático Intel 8087 en el IBM PC, el indicador de batería baja, o un error de paridad que ocurra en la memoria.

En algunos ordenadores clónicos las interrupciones no emascarables se usaban para manejar las diferencias entre su hardware y el original de IBM. Así, si se intentaba acceder a uno de estos dispositivos se lanzaba una NMI y el BIOS ejecutaba el código para el hardware presente en esa máquina.

También se podían lanzar NMI por el usuario, permitiendo interrumpir el programa actual para permitir la depuración. En este caso al lanzarse una NMI se suspendía la ejecución del programa actual y el control se transfería a un depurador para que el programador pudiera inspeccionar el estado de la memoria, los registros, etc. Estas NMI eran lanzadas de diferentes maneras, como pulsando un botón, por medio de una combinación de teclas o por medio de un programa.

En juegos, se producía una NMI y se interrumpía el juego, de esta manera se podían conseguir vidas extras por ejemplo modificando el área de memoria donde se guardaban las vidas restantes.

Véase también

editar