Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejemplos z80 PDF
Ejemplos z80 PDF
Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
MODELO DE PROGRAMACIÓN
7 PSW’ 0
PSW S Z H PV N C
7 A’ 0
7 A 0
15 B’ 87 C’ 0
15 B 87 C 0
15 D’ 87 E’ 0
15 D 87 E 0
15 H’ 87 L’ 0
15 H 87 L 0
15 SP 0
15 PC 0 IFF1 IFF2 0/1 – Prohibido/Permitido
15 IX 0
IFMa IFMb Modo
15 IY 0
7 IV 0
7 R 0
Z80 Página 1
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
• Señal de entrada /BUSREQ (Bus request) para la petición del bus y señal de salida
/BUSACK (Bus acknowledge) para la confirmación de bus cedido que permiten implementar
los protocolos de gestión del bus para el DMA y el multiproceso.
MODOS DE DIRECCIONAMIENTO
• IMPLÍCITO: El operando está referenciado implícitamente por el código de operación.
SCF Pone a 1 el flag C.
• DE REGISTROS: El propio código de operación indica los registros cuyos contenidos serán
los operandos.
ADD A,B Suma el contenido del acumulador (A) con el contenido del registro
B, dejando el resultado en el acumulador.
• PÁGINA CERO: Solo se utiliza en la instrucción RST, que salta y continua ejecutando la
instrucción contenida en la posición en página cero cuya dirección se incluye en la
instrucción, que puede ser 0, 8, 10h, 18h, 20h, 28h, 30h y 38h.
RST 10h Carga el PC con el valor 0010h, con lo que se ejecutará la
instrucción contenida en esa dirección.
• RELATIVO: Es utilizado exclusivamente en las instrucciones de salto condicional (Jump
relative). El operando de un byte incluido en la instrucción es un offset expresado en
complemento a 2 que se suma al contador de programa (PC) actualizado si se cumple la
condición, pasando el PC a apuntar a la dirección de continuación del programa.
JR Z,7Ah Salta, si el resultado anterior fue cero, a la dirección que resulta de
sumar al PC actualizado el número 7Ah en complemento a dos.
Z80 Página 2
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
INTERRUPCIONES
La línea /NMI provoca una interrupción no enmascarable (siempre será atendida) y actúa
del siguiente modo:
1. Copia IFF1 en IFF2.
2. Pone IFF1 a cero (prohibe las interrupciones enmascarables).
3. Guarda el PC en la pila.
4. Salta a la rutina que comienza en 0066h y que debe finalizar con la instrucción RETN
para que se restaure el contenido original de IFF1.
La interrupción /INT solo será atendida si IFF1 está a 1 (los biestables IFF1 y IFF2
constituyen la máscara de interrupciones) y puede funcionar de tres modos diferentes (las
instrucciones IM0, IM1 e IM2 seleccionan cada uno de ellos):
• Modo 0: Cuando se produce la interrupción la CPU espera, en el bus de datos, un código
de operación que será ejecutado en lugar de la siguiente instrucción de la memoria.
Normalmente el código de operación enviado será el de la instrucción RST que producirá
un salto a una posición en página cero.
• Modo 1: Cuando se produce la interrupción se ejecuta la instrucción RST 38h, es decir,
comienza a ejecutar el programa que se localice a partir de la dirección 0038h.
• Modo 2: Al producirse la interrupción, en el bus de datos se espera un vector de 8 bits
que constituirá la parte baja de una dirección de memoria, la parte alta de esa dirección
deberá encontrarse en el registro IV. La dirección de comienzo de la rutina de atención a
la interrupción se obtiene de forma indirecta: byte bajo en (IV[vector]) y byte alto en
(IV[vector+1]).
Z80 Página 3
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
• Programa que inicializa a FFh las posiciones de memoria comprendidas entre la 4080h y
408Fh.
• Programa que inicializa el bloque de memoria entre las direcciones 4100h y 411Fh con los
valores 0, 1, 2, ..., 1Fh.
• Programa anterior modificado para que la inicialización se realice en orden inverso (de la
4100h a la 411Fh con los valores 1Fh, 1Eh, ...0).
Z80 Página 4
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
• Programa que copia el bloque de memoria comprendido entre las direcciones 0000h y 001Fh
a partir de la dirección 4100h.
• Programa que localiza el mayor y el menor de los 16 datos de un byte almacenados a partir
de la posición 4050h y los almacena, respectivamente, en las posiciones 40A0h y 40B0h.
Z80 Página 5
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
• Programa que suma dos datos de 8 bytes que comienzan en las posiciones 4050h y 4060h y
almacena el resultado a partir de la dirección 40A0h. Como el Z80 almacena los datos en
memoria con los bytes de pesos mayores en las direcciones mayores, en caso de producirse
acarreo final, este deberá almacenarse en la dirección 40A8h, si no hay acarreo, deberá
ponerse a cero.
Z80 Página 6
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
REPERTORIO DE INSTRUCCIONES
El repertorio de instrucciones del Z80 es, probablemente, uno de los más completos y
complejos de los microprocesadores de su categoría, además de mantener la compatibilidad con
el juego del 8080. (Ver hojas adjuntas).
Z80 Página 7
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
Z80 Página 8
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
Z80 Página 9
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
Z80 Página 10
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
Z80 Página 11
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
Z80 Página 12
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
Z80 Página 13
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
Z80 Página 14
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
Z80 Página 15
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
Z80 Página 16
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
Z80 Página 17
Universidad de Alcalá I. T. Informática de Sistemas
Departamento de Automática Laboratorio de Microprocesadores
Z80 Página 18