Documento donde se explica el lenguaje para la programacion y funcionamiento del microprocesado Z80Descripción completa
caracteristicas zilog z80
hfFull description
Descripción completa
Full description
mengamati bagaimana proses aritmatika pada mirkoprosesor Z80
mengamati bagaimana pengalamatan pada mikroprosesor Z80
Descripción completa
Descripción completa
Assembly Language
Ejercicios Básicos en AssemblerDescripción completa
Figura ! "ub#Bloques del Bloque Fa$torial
a6 ub;s se guardara en el registro < lo $ue este guardado en el registro C ,a $ue este ser el contador de cuantas veces se reali#ara las sumas sucesivas. Debido a $ue el primer valor ,a est en el acumulador se despu>s de cargar el valor al registro < se le restara uno. Esto con las siguientes instrucciones= 8D < C DEC < 8uego de esto ser reali#ara un salto relativo el cual trabajara con la bandera de resultado cero. Compara si al decrementar < es igual a cero si < es di%erente de cero entonces salta al siguiente sub;blo$ue llamado OPE! sino es as? continua con la siguiente instrucción. Esto ser reali#a con el siguiente código= @! ( OPE! 8uego de esto se utili#a otro salto relativo de igual %orma trabaja con la bandera de resultado igual cero en este caso si ,a salto no salto con la anterior comparación revisara la comparación actual , si el resultado es igual a cero entonces salta al siguiente blo$ue , por t anto siguiente subrutina llamada A8'DA. Esto se reali#a con la siguiente instrucción= @! ( A8'DA b6 ub;
8uego de esto utili#aremos el registro < como contador con el salto D@( esta instrucción decrementara en uno el registro <. i < no es cero entonces saltara a la subrutina AC0 para escoger el siguiente nmero para multiplicar pero si
Bloque Salida de Datos Este es el blo$ue nal del programa en el cual se mostrar el ltimo resultado de la operación del %actorial. Por lo $ue la siguiente instrucción enviar el valor del acumulador al puerto de salida *9: con la siguiente in strucción= O0 4*9:6 A Por ltimo para nali#ar , $ue se $uede mostrando el valor nal del %actorial del nmero cuatro -aremos una pausa con la instrucción :A80.
Compilación na ve# nali#ado el programa se debe guardar , luego compilar el mismo para ver $ue no e"ista ningn error en el código. Para esto en la ventana donde se programa se debe dar clic/ en 0ools , escoger la opción Assembler.
Figura % Com&ila$ión de 'rograma
na ve# el programa sea compilado en la parte in%erior aparecer el nmero de errores si el nmero de errores es * entonces el programa est listo para ser cargado , ejecutado en el 'DE.
Figura ( Errores de Com&ila$ión
na ve# $ue se tiene cero errores al compilar se debe cargar el programa al 'DE para esto se debe dar clic/ en la barra de -erramientas en la opción ile , escoger 8oad Program. A$u? se cargar un arc-ivo con el nombre $ue se -a,a guardado el código pero tendr la e"tensión .obj.
Figura ) Cargar 'rograma al IDE
8uego de esto dar clic/ en la barra de - erramientas en la opción imulation para correr el programa a$u? -a, dos opciones correr el programa normalmente o correrlo paso a paso se escoge una de las dos opciones.
Figura 8 Ini$iar "imula$ión
En los programas $ue utilicen puertos se podr ver lo ingresado o la salida de los puertos usando una -erramienta incorporada en el 'DE. e da clic/ en 0ools , se escoge 'O Ports Editor.
Figura * Editor de 'uertos
A$u? es donde se vern los datos $ue se env?en a los puertos de salida. Por ltimo para nali#ar la compilación presionamos 3.
Ejemplo Primero en el puerto de salida veremos el nmero & ,a $ue es el primer %actor a multiplicarse.
Figura 10 'rimer Fa$tor del Fa$torial
En los registros se podr ver los nmeros a multiplicarse.
Figura 11 +,meros a -ulti&li$arse
El resultado de esa operación ser OC en -e"adecimal , es lo $ue aparece en el puerto de salida *9:.
Figura 12 .esultado de 'rimera -ulti&li$a$ión
8a siguiente multiplicación a reali#arse es=
Figura 13 "egundo /a$tores a multi&li$arse
El resultado de la multiplicación anterior se muestra en el puerto
Figura 1! .esultado segunda multi&li$a$ión
ltima multiplicación a reali#arse
Figura 1% ltima -ulti&li$a$ión
1 el resultado ,a $ue se multiplica por 9 es el mismo anterior
Figura 1( .esultado ltima -ulti&li$a$ión
Conclusiones •
•
•
• •
e conclu,e $ue en la ma,or?a de operaciones $ue se reali#a el un operando es el acumulador. 8os programas puede ejecutarse continuamente o pararse despu>s de una ejecución como en este caso con la instrucción :A80. 0odos los registros $ue no son el acumulador son mu, necesarios para guardar los datos $ue se necesitaran posteriormente. El registro < tiene un uso benecioso como contador. e puede combinar una rutina de multiplicación con una de selección de nmero para calcular el %actorial.
!ecomendaciones • •
•
•
e recomienda usar banderas para reali#ar los saltos a otras %unciones. i se desea reali#ar un programa en un orden espec?co se recomienda retornar al nal de las subrutinas , reali#ar las llamadas al inicio del programa. e recomienda tener en cuenta la estructura de programación por ejemplo las instrucciones no van desde el inicio de la l?nea sino despu>s de un espacio mientras $ue los nombres de las subrutinas si se debe escribir desde el inicio de la l?nea donde se escriba. e recomienda ejecutar paso a paso antes de ejecutar continuamente a n de $ue se pueda detectar errores en el código.
Ane"os 8D P 95**: F'niciali#a Direccion del Puntero de Pila F88AGADA A
FCarga en la direccion de memoria 9*** el valor del Fregistro A 4:86 apunta a la direccion del valor
F$ue tiene el registro :8 8D <C FCarga al registro < el valor del registro C DEC < FDecrementa en 9 el registro < @! (OPE! FCompara si al decrementar < no es cero 4lag #B*6 Fi #B* entonces salta a subrutina OPE! Fcaso contrario continua con la siguiente instruccion @! (A8'DA FCompara si al decrementar < es cero 4lag #B96 Fi #B9 entonces salta a salida OPE!= ADD AD
Fuma el valor de la direccion de memoria a la $ue Fapunta el registr :8 con el valor del registro A D@( OPE! FDecrementa el valor de registro < en 9 mientras F< no sea cero salta a la subrutina OPE! %ormando Fun bucle si