Z80_INT

Páginas: 10 (2344 palabras) Publicado: 22 de octubre de 2015
INTERRUPCIONES

Modos de Interrupción de la CPU Z80.

La CPU Z80 tiene dos entradas para recibir solicitudes de interrupción:

NMI (Non-Maskarable Interrupt): Interrupción No Mascarable.

INT (Maskarable Interrupt): Interrupción Mascarable.

La entrada NMI sólo permite un tipo de interrupción y siempre es reconocida por la CPU, excepto al estar procesando una solicitud del bus (BUSREQ).La entrada INT permite hasta 128 niveles (o dispositivos) de interrupción y sólo es reconocida por la CPU al estar habilitadas las interrupciones.

La CPU tiene un flip-flop interno que sirve para habilitar o deshabilitar interrupciones mascarables, por medio de las instrucciones EI y DI respectivamente, llamado IFF1. Así entonces, existen 3 modos de atender solicitudes de interrupción por lalínea INT de la CPU, llamados Modo 0, 1 y 2; los cuales son seleccionados por las instrucciones IM0, IM1 e IM2, respectivamente.

Interrupción No Mascarable.

Al solicitar un dispositivo externo una interrupción a la CPU Z80 por la línea NMI, dicha solicitud se reconoce al final de la ejecución de la instrucción que esté procesando la CPU. La CPU salva el contenido del flip-flop IFF1 en otroflip-flop interno de la CPU llamado IFF2, limpiando a continuación el IFF1 para no aceptar interrupciones por la línea INT; a continuación la CPU ejecuta una instrucción RST a la localidad de memoria 0066H y al final de la rutina de atención o de servicio al dispositivo externo que solicitó una NMI se deberá de encontrar una instrucción RETN. Por su parte, la CPU al solicitarle una interrupciónNo-Mascarable la reconocerá activando sus señales de salida IORQ (Input/Output Request) y M1 al mismo tiempo (Ver Figura No. 19).

Interrupción Mascarable.

Interrupción en Modo 0:

Es el modo de inicio de la CPU Z80 o es el modo de interrupción que toma la CPU al suministrársele energía o al activar la señal de entrada de RESET. Este modo se ordena con la instrucción IM0, por lo que si unasolicitud de interrupción es reconocida por la CPU programada en Modo 0 y además el flip-flop IFF1 está activado (con un '1' lógico) sucederán los siguientes eventos:

La CPU limpia o desactiva el flip-flop IFF1 (con '0' lógico).

El periférico que solicitó la interrupción deberá responder enviando por el bus de datos el código de operación de una instrucción RST XX.

La CPU ejecutará la instrucción RSTXX y al final de la rutina de servicio se deberá de encontrar una instrucción RETI.

Interrupción en Modo 1:

El modo 1 se ordena con la instrucción IM1 y si el flip-flop IFF1 = 1 (está habilitado) la CPU Z80 al recibir una solicitud de interrupción responderá activando las señales IORQ y M1 ejecutando además una instrucción RST a la localidad de memoria 0038H.

Instrucción RST XX. Lainstrucción RST XX salva el contenido del PC (Program Counter) en el tope del stack y carga el PC con una nueva dirección, por tanto, la ejecución del programa continuará en la dirección obtenida de multiplicar por 8 el valor de los bits 3, 4 y 5 del código de operación de la instrucción RST XX en particular.

Por tanto, son 3 los bits con los cuales podemos obtener hasta 8 diferentes instruccionesRST, es decir, podemos saltar a una de 8 posibles localidades de la memoria pertenecientes a la página cero con una instrucción de un sólo byte y salvar el contenido del PC en el tope del stack, en comparación con la instrucción CALL XX que ocupa 3 bytes de código.


XX
INSTRUCCIÓN
CÓDIGO
DIRECCIÓN A LA QUE SALTA
0
RST 00 H
C7 H
0000 H
1
RST 08 H
CF H
0008 H
2
RST 10 H
D7H
0010 H
3
RST 18 H
DF H
0018 H
4
RST 20 H
E7 H
0020 H
5
RST 28 H
EF H
0028 H
6
RST 30 H
F7 H
0030 H
7
RST 38 H
FF H
0038 H


Como se puede observar, entre cada dirección que se puede alcanzar con una instrucción de RST XX existen 8 bytes de diferencia únicamente, por lo que generalmente en cada una de éstas localidades de memoria se coloca un salto a otra...
Leer documento completo

Regístrate para leer el documento completo.

OTRAS TAREAS POPULARES

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS