Está en la página 1de 2

6.

INTERRUPCIONES QUE INTERVIENEN EN CADA PUERTO

Manejo de la interrupcin del puerto paralelo. El bit 4 del puerto de control se denomina IRQEN. Este bit habilita o permite que se produzca la interrupcin asociada a la entrada ACK#. Cuando este bit est a 1 y la seal ACK# pasa del nivel lgico 1 al nivel 0 se produce una peticin de interrupcin, que es la IRQ7. En el diseo original del PC, IBM reserv 8 interrupciones hardware, comenzando por la interrupcin 08h, para expansin de interrupciones, que son comnmente conocidas como IRQ0 a IRQ7. As la IRQ0 se corresponde con la interrupcin 08h, la IRQ1 con la 09h, etc. La IRQ7 se corresponde pues con la 0Fh, estando sus vectores a partir de la direccin 0000:003Ch. Para que una peticin de una IRQ llegue a la CPU, sta debe estar permitida, no enmascarada. El puerto 021h est asociado con la mscara de interrupciones de las IRQ. Para habilitar una determinada interrupcin se deber escribir un cero en la posicin correspondiente, sin modificar el resto. As, si lo que se quiere es permitir la IRQ7 habr que poner a cero el bit ms significativo del puerto 021h, como muestra el cdigo siguiente: in al,021h ; lee la mscara de las IRQ and al, 01111111b ; impone un 0 en el bit ms significativo, IRQ7. No modifica el resto out 021h, al ; escribe la mscara Con estas operaciones quedar habilitada la IRQ7. Una vez atendida de la forma que se haya previsto, el programa debe indicar a la CPU que la interrupcin ya ha sido procesada, para ello debe escribir un 1 en el bit 5 del puerto 020h, es decir:

mov al, 020h ; carga en al 0010 0000 b out 020h, al ; lo escribe en al puerto 020h Finalmente, tan slo queda por activar el bit que permite que la seal ACK# genere una peticin de IRQ7. Para ello se deber poner a 1 el bit 4 del puerto de control , sin modificar el resto. Cuando no se quiera que se produzca una IRQ7, basta con poner a cero este bit. Al finalizar el programa, no slo se deben restablecer los vectores de interrupcin modificados, sino que tambin se debe inhibir la IRQ7, dejando la mscara del puerto 021h como estaba. Un programa que utilice la interrupcin del puerto paralelo puede tener esta estructura, en lo que se refiere al manejo de dicha interrupcin:

También podría gustarte