Está en la página 1de 22

Sistemas Digitales I

Interrupciones.
INTRODUCCIN

Una interrupcin es la ocurrencia de un evento o condicin la cul


causa una suspensin temporal del programa mientras la
condicin es atendida por otro subprograma.

Una interrupcin d la apariencia de que un sistema realiza


varias tareas simultneamente, pero la CPU slo puede ejecutar
una instruccin cada ciclo de mquina.

El proceso anterior se conoce como SUBRUTINA. La diferencia


de un sistema con interrupciones es que la interrupcin no se
genera con una instruccin CALL, sino en respuesta a una
llamada generada por HARDWARE o por SOFTWARE.

El programa que se ejecuta cuando se genera una interrupcin se


llama: RUTINA DE ATENCIN A INTERRUPCIN (ISR).
Ing. Ricardo Godnez Bravo.
Sistemas Digitales I

Interrupciones.
INTRODUCCIN

Cuando se genera una interrupcin el programa principal se


detiene y salta a atender la llamada a interrupcin (subrutina).

La ISR se ejecuta y termina (regresa al programa principal) con


una instruccin de retorno de interrupcin IRET, entonces, el
programa principal continua desde donde ocurri la interrupcin.

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
FUNCIONAMIENTO DE INTERRUPCIONES

Cuando se genera una interrupcin el CPU termina de ejecutar la


instruccin en curso y evala cual fue la fuente de interrupcin
como sigue:

Respalda el contenido de registro PSW en la pila


(especialmente IF e IT).

Se desactivan las banderas IF e IT.

Se respalda el contenido de CS e IP en la pila.

Se recupera el contenido del vector de interrupcin


correspondiente y se coloca en IP y CS de modo que la siguiente
instruccin se ejecute en la ISR direccionada por el vector.

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
FUNCIONAMIENTO DE INTERRUPCIONES

El procesador 8086 cuenta con cinco fuentes de interrupcin:


Interrupcin Tipo Descripcin

INT #n Software Es una


instruccin

INTR Hardware Int. Ext.


Mascarable
NMI Hardware Int. Ext. no
Mascarable
Interna Software Condiciones
internas de error

RESET Hardware Seal de inicio


del sistema

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
FUNCIONAMIENTO DE INTERRUPCIONES

La interrupcin por RESET tiene la mas alta prioridad y es usada


para reiniciar o restaurar el sistema.

La secuencia de prioridad de alta a baja en las interrupciones es:

RESET
Error de divisin
INT #n
INTO
NMI
INTR

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
VECTORES DE INTERRUPCIN

Un vector de interrupcin es un numero de 4 bytes almacenado


en el 1er 1K Byte de la memoria (00000H 003FFH) el cual
define la tabla de vectores de interrupcin, con un total de 256
interrupciones.
Cada vector contiene la direccin de un procedimiento ISR. Los
primeros dos Bytes contienen a IP y los dos ltimos contienen a
CS donde se encuentra el cdigo a ejecutar debido a la
interrupcin.

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
TABLA DE VECTORES DE INTERRUPCIN

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
TABLA DE VECTORES DE INTERRUPCIN

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
INSTRUCCIONES DE INTERRUPCIN

Los microprocesadores 8086 80486 tienen tres diferentes


instrucciones de interrupcin:
INTO. Esta instruccin de interrupcin por sobreflujo es una
interrupcin condicional de software que evalua la banfera OF.

Si OF = 0 la instruccin INTO no se ejecuta, pero si la bandera


OF = 1, entonces se ejecuta la interrupcin del vector Tipo 4, es
decir, la instruccin INTO llama al procedimiento ISR cuya
direccin esta almacenada en el vector de interrupcin Tipo 4
(direccin 00010H).

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
INSTRUCCIONES DE INTERRUPCIN

Los microprocesadores 8086 80486 tienen tres diferentes


instrucciones de interrupcin:
INT 3. Esta instruccin es un caso particular de la instruccin
INTn, ya que slo se genera un byte de cdigo, el cual sirve para
generar puntos de ruptura en el flujo del programa para la
depuracin de estos.

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
INSTRUCCIONES DE INTERRUPCIN

Los microprocesadores 8086 80486 tienen tres diferentes


instrucciones de interrupcin:
INT n. Esta instruccin llama al procedimiento de servicio de
interrupcin ISR que comienza en la direccin representada por
el vector nmero n.
Para determinar la direccin del vector de interrupcin donde se
tienen los valores de [CS : IP] de la ISR, se multiplica el nmero
del vector n por 4. Con ello se tiene la direccin inicial del vector
de 4 bytes de longitud.

Existen 256 instrucciones para interrupcin INT n por software.


Cada una de estas genera 2 bytes de cdigo. El primero contiene
el cdigo de operacin y el segundo el valor del vector n.
Ing. Ricardo Godnez Bravo.
Sistemas Digitales I

Interrupciones.
INSTRUCCIONES DE INTERRUPCIN

FUNCIONES DEL DOS PARA INTERRUPCIONES (INT 21H)


El programa maestro que controla todo el sistema de E/S y las
funciones internas de una PC es llamado sistema operativo.
El DOS (Disk Operating System) contiene varias rutinas en
software que pueden ser usadas por el programador.
El Dos usa varias funciones de interrupcin Tipo INT n. Estas
funciones van desde INT 00H hasta INT 27H las cuales
interaccionan con dispositivos como discos, video, E/S y funciones
del sistema.
La INT 21H es usada para procesar acciones diversas las cuales
deben estar contenidas en el registro AH (cdigo de accin) antes
de ejecutar la interrupcin del DOS.

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
INSTRUCCIONES DE INTERRUPCIN

FUNCIONES DEL DOS PARA INTERRUPCIONES (INT 21H)


Dentro de las funciones de la INT 21H se encuentran las
siguientes:

Accin Descripcin Caractersticas


Termina el programa y retorna
00H Terminar programa
el control al DOS

01H Leer teclado con ECO AL = ascii; Pantalla = ECO

02H Desplegar carcter DL = ascii

03H Leer puerto serial COM1 AL = ascii

Escribir puerto serial


04H DL = ascii
COM1

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
INSTRUCCIONES DE INTERRUPCIN

FUNCIONES DEL DOS PARA INTERRUPCIONES (INT 21H)


Dentro de las funciones de la INT 21H se encuentran las
siguientes:

Accin Descripcin Caractersticas


Escribir puerto paralelo
05H DL = ascii
LPT1

08H Leer teclado sin ECO AL = ascii

Mostrar cadena de DS:DX dir de cadena; fin de


09H
caracteres cadena = $ (24H)
Almacenamiento del AL = # interruptor;
25H
vector de interrupcin DS:DX = direccin de ISR
Leer fecha de sistema CX=ao; DH=mes; DL= da
2AH
del mes; AL= dia semana

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
INSTRUCCIONES DE INTERRUPCIN

FUNCIONES DEL DOS PARA INTERRUPCIONES (INT 21H)


Dentro de las funciones de la INT 21H se encuentran las
siguientes:

Accin Descripcin Caractersticas

Establece tiempo de CX = ao; DH = mes


2BH
sistema DL = da del mes
CH=horas; CL=minutos;
2CH Leer tiempo de sistema
DH=seg; DL=centecimas /seg
Establecer tiempo de CH=horas; CL=minutos;
2DH
sistema DH=seg; DL=centecimas /seg
AH = fraccin
30H Leer versin de DOS
AL = enteros

4CH Terminar proceso Regresa el control al DOS

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
INSTRUCCIONES DE INTERRUPCIN

FUNCIONES DEL BIOS PARA INTERRUPCIONES


Las ISRs del BIOS (Basic Input Output System) se almacenan en
memoria ROM, estas funciones controlan directamente los
perifricos de E/S con o sin DOS cargado en un sistema.

INT 10H (Servicios de video). Esta interrupcin controla


directamente la pantalla de video de un sistema.

La instruccin INT 10H utiliza al registro AH para seleccionar el


servicio de video peroporcionado por la interrupcin.

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
INSTRUCCIONES DE INTERRUPCIN

FUNCIONES DEL BIOS PARA INTERRUPCIONES


Las ISRs del BIOS (Basic Input Output System) se almacenan en
memoria ROM, estas funciones controlan directamente los
perifricos de E/S con o sin DOS cargado en un sistema.
Accin Descripcin Caractersticas
CH = nmero de lnea inicial
01H Tipo de cursor
CL = nmero de lnea final
Seleccin de posicin de BH=nmero de pagina;
02H
cursor CH=rengln; CL=columna
BH=nmero de pagina;
03H Leer posicin de cursor DH=rengln; DL=columna;
Cx = tamao del cursor
AL=10H; BX=color (0-255)
10H Establecer monitor VGA
CH=verde; CL=azul; DH=rojo

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
INTERRUPCIONES POR HARDWARE

Las interrupciones por hardware se detectan a travs de dos


terminales del procesador, la interrupcin no mascarable NMI y la
interrupcin mascarable INTR.
Siempre que se activa la terminal NMI ocurre una interrupcin Tipo 2.
Cuando se activa la terminal INTR se debe codificar externamente
para seleccionar el vector de interrupcin.
La seal INTA es una salida que se utiliza en respuesta a la seal
INTR para obtener el numero de vector.

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
INTERRUPCIONES POR HARDWARE

Las interrupciones no mascarable NMI y mascarable INTR son


entradas disparadas por flanco positivo (flanco de subida).

Para que se reconozca el flanco positivo la terminal NMI debe


permanecer en un nivel bajo (0 lgico) almenos durante dos peridos
de reloj.

Para que se reconozca el flanco positivo en la terminal INTR la


bandera IF debe estar activada.

Una vez que ha sido reconocida la interrupcin INTR se debe


desactivar la bandera IF (CLI). En este instante la CPU retorna una
seal de reconocimiento atravs de la terminal INTA.

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
INTERRUPCIONES POR HARDWARE

La seal de reconocimiento causar que el dispositivo que interrumpe


enve a la CPU atravs del bus de datos (d0-d7) la informacin del tipo
de interrupcin para generar el vector de interrupcin.

En este momento la secuencia de interrupcin es generada y se


atiende la ISR hasta regresar con la instruccin IRET.

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
INTERRUPCIONES POR HARDWARE

Ing. Ricardo Godnez Bravo.


Sistemas Digitales I

Interrupciones.
INTERRUPCIONES POR HARDWARE

Ing. Ricardo Godnez Bravo.

También podría gustarte