Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniería electrónica
Lenguaje de Maquina
Expresiones de Instrucciones
Circuito propuesto
§ A. Variables y datos
1. Contador de datos
- De un valor del numero de columna de la matriz
- De un valor de veces que se realiza la visualización
2. Puntero a bloque de datos fila de la matriz
3. Bloque de datos de la fila de la matriz
4. Acumulador para poder sacar los datos
5. Pila para el almacenamiento de la variable de escaneo
6. Retardo para la visualización
7. Puertos de salida fila y columna
§ B. Procedimiento
1. Iniciar variables
- Contador1 veces de visualización
- Puntero de pila (SP)
- Dirección de memoria datos de la fila
2. Iniciar variables para ver una sola vez la figura
- Contador2 columnas de la matriz
- Acumulador valor para habilitar la columna
- Puntero
3. Transferir los datos de fila y columna a los puertos
- Puerto_columna Acumulador
- Depositar a la pila el Acumulador
- Acumulador Leer el dato de la memoria
- Puerto_fila Acumulador
- Apuntar a la siguiente posición de dato de fila
- retardo
- Recuperar de la pila el valor de habitar la columna
- rotar a la derecha
- Decrementar el valor del contador 2
4. ¿Ultimo valor de columna?
No, Repetir el paso 3
5. ¿Ultimo valor de despliegue de la figura?
No, Repetir desde el paso 2
6. Finalizar
¿Ultimo valor de
despliegue de la figura? - Contabiliza el numero de veces que se
observara la figura
SI - ¿ultima columna? No , repetir
FIN
5. PROGRAMA
;segmento de datos de fila de la figura
org 8010h
SCAN1 DEFB 08H
SCAN2 DEFB 04H
SCAN3 DEFB 22H
SCAN4 DEFB 02H
SCAN5 DEFB 02H
SCAN6 DEFB 22H
SCAN7 DEFB 02H
SCAN8 DEFB 08H
;segmento de programa
org 8050h
LD H,0Ah ;contador de veces de mostrar la figura
LD SP,8EFFh ;segmento inferior de la memoria del entrenador
LD B,80h ;direccion de memoria donde se encuentan
LD C,10h ;los datos
LD (8000h),BC ;almacenamos en la dirección 8000h
LD E,0Ah ;para uso del servicio 0103h
bucle1:
LD C,08h ;numero de columnas de la matriz
LD A,80h ;habilitador de columnas
LD IX,(8000h) ;apuntamos a la dirección de los datos
bucle2:
OUT (0FDh),A ;sacamos el bit que habilita columnas
PUSH AF ;almacenamos e la pila
LD A,(IX+0) ;cargamos el dato de fila dela matriz
OUT (0FEh),A ;sacamos el dato de la fila
INC IX ;actulizamos el puntero
CALL 0103h ;retardo de 1mS...5ms
POP AF ;recupera el bit que habilita la columna
RRCA ;rotamos el A a la derecha
DEC C ;decrementa el # de columnas
JP NZ,bucle2 ;si no es cero salta a bucle 2
DEC H ;decrementa el # de veces que se visuliza
JP NZ,bucle1 ;si no es cero salta a bucle 1
HALT ;alto
.END
Para poder crear el archivo *.lst y el *.obj que nos sirven para poder cargar en los
entrenadores los que tenemos que hacer es ensamblar el programa editado con la
extensión *.asm
Como para este ejemplo el archivo ya esta diseñado en esta ventana debemos abrir el
archivo *.asm accediendo a FileOpen
En caso de existir errores el ensamblador nos indica en que líneas se encuentran los
errores:
En el caso de no existir errores entonces se crean los archivos *.obj y *.lst donde el
archivo *.obj nos sirve para poder cargar al simulador y el archivo *.lst nos sirve para
poder cargar en el entrador Z800km2 (Kentac)
Que luego de presionar no muestra lo operación que esta realizando y el tamaño del
programa en la parte inferior de la ventana del editor del programa
Simulación
1 Start F1 Iniciar la simulación en forma secuencial
2 Step F2 Iniciar la simulación en forma paso a paso
3 Stop F3 Para la simulación del programa
Tools
Visor de simulación
En esta ventana se pueden ver los estados de todos los registros y banderas que con
cada paso de instrucción se van actualizando los valores, esta lista es posible
guardarlos como archivo de texto.
Tenemos la opción de poder ver los puertos de I/O desde una dirección 00 a F0h
Inicio de la Simulación
Lo primero que se debe realizar es de cambiar la dirección de inicio del programa con
la opción de la barra de herramientas Opcion Change Staring Adress
Editor de Memoria
El maletín del entrenador se presentara como la anterior figura, que tiene las
siguientes características:
CPU :Z80A
Velocidad: 8MHz (Velocidad de la CPU es 4MHz)
Memoria: ROM 2732 x4 16Kbytes
: RAM HM6117LP-3 x2 4Kbytes
E/S de serie: RS232(8251) x 1
: Velocidad 150 – 19200 baud
E/S paralelo: 8255 x2 (8 bits x 3 puertos)
Interrupción: 8259 x1 6 niveles para usuario (IR1-IR6)
Tarjeta de E/S
Introducir : 25 botones
Indicar: 8 cifras de números
E/S paralelo: 8255 x2 (8 bits x 6 puertos)
: Salida 8 leds x 2 puertas
: Entrada 8 botones y 8 Leds
Entrada de Interrupciones: 2 niveles IRQ5, IRQ6
Tarjeta de E/S
Escribir un programa
La estructura de la información que nos muestra es la siguiente:
, , ,
Y en la pantalla de display se observa la siguiente información
Introducimos:
de la siguiente manera:
Ejecutar el Programa
Se realiza el siguiente procedimiento:
(1) Presionamos , , , ,
NOTA
Otras Funciones.
Mover memoria ,
Esta función sirve para mover los contenidos escritos en memoria a diferentes
direcciones sin modificar contenidos, por ejemplo se puede usar para mover el
contenido de las direcciones 8000h a 8100h hasta la dirección 8200h a 8300h.
Llenar en memoria ,
Esta Función sirve para llenar en memoria el dato deseado, por ejemplo si queremos
llenar la dirección 8000h a 8100h con el dato 00h debemos seguir los siguientes pasos.
Esta función sirve para sacar los datos a los puertos de salida
hexadecimales) y presione .
c. A continuación introducimos los datos que se quiere sacar por el puerto. Y se
presiona
Una vez instalado en se accede de la siguiente forma haciendo doble clic en el icono
SimuTrainer7.0
Para poder abrir el archivo *.asm se tiene que presionar el icono abrir de la pequeña
barra de herramientas.
También como en el caso del simulador z80 IDE se puede editar el programa *.asm o
un archivo de texto *.txt o cualquier archivo editado por el bloc de notas simplemente
abrir.
En caso de existir un error nos muestra el tipo de error y en que fila se encuentra este
Donde se observa el segmento de código inicial, los registros PI, A, B, X, SP, BR, las
banderas, El segmento de pila y el mapeo de memoria este simulador es muy útil por
tener la misma interfaz del entrenador ET-3400.
COMANDOS BASICOS
Reset
Generalmente, aunque no siempre, se lo utiliza para iniciar un proceso, es decir, para
comenzar, examinar, etc. Un programa.
Acumulador A/1
Representa el acumulador A, y sirve para almacenar datos que en muchos casos
representan resultados parciales ó finales, también suelen representar valores de
referencia. Cuando se esta realizando cualquier proceso excepto el de INTRODUCIR
un programa se puede acceder a los datos que contiene el acumulador.
Acumulador B
Representa al acumulador B y cumple la misma función del acumulador A
Auto/A
Sirve para iniciar el proceso de INTRODUCIR un programa.
Exam/E
Se utiliza para iniciar el proceso de INTRODUCIR un programa.
Do/D
Se utiliza para iniciar el PROCEDIMIENTO para hacer correr un programa.
FWD/F
ANANZA una posición de memoria.
BACK/B
RETROCEDE una posición de memoria.
CHAN/C
Sirve para CAMBIAR un valor en una determinada posición de memoria.
PC/3
Representa el contador de pasos de un programa, y se lo utiliza para “iniciar” el
proceso de HACER correr un programa PASO a PASO.
SS/8
Se lo utiliza para HACER correr el programa PASO a PASO
INDEX/4
Indica el valor del REGISTRO INDICE.
SP/6
Indica el valor del STACK POINTER.
RTI/7
Realizar SALTOS ENTRE INTERRUPCIONES en proceso de un programa paso a
paso.
BR/9
Permite llegar a los puntos de ruptura.
CC/5
Sirve para observar la Condición de los códigos en determinado momento.
a) Ejecución Completa
Antes de la simulación
2. Digitar la tecla
5. Presionar