Vous êtes sur la page 1sur 2

Universidad del Norte. Dpto de Ingenieria Electrica y Electrnica.

200068414-200064866

Ejercicios mixtos en lenguaje assembler sobre la


programacin del microprocesador Z-80
Jimnez Medina Mauro y Vera Torres Katerine
Universidad del Norte, Barranquilla, Colombia

Abstract The following assembler code is for a vending


machine which works with coins that should possess a value of
100, 200, 500 pesos, the vending machine should have a register
for the accumulated payment and if there is a balance for a next
purchase the user have to be in knowledge of it.
ndice de Trminos transferencia de datos, operaciones
aritmticas y lgicas, instrucciones de salto y programas con
bucle, instrucciones especiales, direccion de memoria, registro
par.

I.

INTRODUCCIN

Una mquina expendedora puede contar con diferentes


opciones para almacenar datos y entregar determinado
producto. Usando el programa z80, se puede hacer uso de
registros almacenados en direccionamientos de memorias que
permitan la identificacin de los diferentes productos que
ofrece la maquina o hasta de un contador simple para realizar
el expendio de estos de forma inmediata, si se ingresa
determinada variable que permita el funcionamiento correcto
de actuadores especficos.
II. OBJETIVOS
o

Evaluar
los
conocimientos
relacionados
con
programacin de procesadores y la interconexin y
manejo de dispositivos perifricos usando el ensamblador
Z80.
III. EQUIPO UTILIZADO

Simulador Z-80 programando en (assembler) lenguaje de bajo


nivel.
IV. PROPUESTA Y ALTERNATIVAS DE SOLUCIN
Para el desarrollo de la mquina expendedora se decide usar
dos direcciones de memorias; la 0E0H que corresponde al tipo
dato ingresado y la 0F0H que corresponde al valor en pesos
colombianos, decididas para ese uso por los desarrolladores
con la intencin de simplificar la identificacin de datos
ingresados; se usa la sentencia CPIR para la revisin del tipo
de valor ingresado y validar la ejecucin del programa,
adems; para verificar si se ingres el debido monto de 500
pesos y expender el producto. Se utilizan otras funciones
como la carga de valores a registros individuales y pares,

operaciones aritmticas, saltos relativos y banderas de estados,


pero las funciones principales son posibles por la sentencia
CPIR.
Como alternativa planteamos el uso de los desplazamientos
para convertir el tipo de moneda inmediatamente en pesos
colombianos y la creacin de rutinas especiales diseadas por
el equipo de trabajo para elaborar la multiplicacin de los
valores en caso del ingreso de varios valores del mismo tipo y
simplificar as el proceso de acondicionamiento de variables
externas; luego proponemos usar sentencias similares para
mostrarle al usuario el estado o balance del monto ingresado
en la mquina y proceder de forma similar con subrutinas que
se encarguen de verificar si se lleg al monto especificado
para el expendio del producto.

V. DESARROLLO DE PROPUESTA
a.

Flujograma

Universidad del Norte. Dpto de Ingenieria Electrica y Electrnica.200068414-200064866


b.

Diagrama de bloques

c.

Cdigo en assembler
;Microprocesadores, maquina expendedora
org 0000h
jr inicio
org 0080h

inicio:
ld D,0h ;Contador
;Valores de monedas
ld HL,0E0h ;direccionamiento de memoria en el registro
par
ld (HL),01h ;cien pesos
inc HL
;cambio de direccion de memoria
ld (HL),02h ;doscientos
inc HL
;cambio de direccion de memoria
ld (HL),03h ;quinientos
;Valores de dinero
ld HL,0F0h
ld (HL),01h ;cien pesos
inc HL
;cambio de direccion de memoria
ld (HL),02h ;doscientos
inc HL
;cambio de direccion de memoria
ld (HL),03h ;trescientos
inc HL
;cambio de direccion de memoria
ld (HL),04h ;cuatrocientos
inc HL
;cambio de direccion de memoria
ld (HL),05h ;quinientos
monedain:
ld HL,0E0h ;vuelve a la direccion de registro donde se
guarda el tipo de monneda
ld BC,04h
IN A,(11H)
CPIR
;comparacion entre HL y BC, HL++, BC--,
hasta BC=0 o HL=A
jr nz,monedain ;si no es vlido, regresa a recibir
monedas
dec C
jr z,quinientos
or 0 ;pasa al siguiente ciclo

valorvalido:
;agrega el valor de la moneda a un
contador
;revisa si es suficiente para expender producto
add A,D ;suma de pesos acumulados
ld HL,0F0h
ld BC,04H
CPIR
;revisa si es inferior a quinientos
ld D,A ;valor en pesos
out (02h),A ;salida del valor acumulado en pesos
JR Z,monedain ;vuelve al ciclo principal
or 0 ;pasa al siguiente ciclo
quinientos:
;si el valor del acumulador es quinientos
CP 03H
;comparador con A, A=03H, entonces z=1,
PF=0
jr z,expendedor ;salta a subrutina expendedor
jr nz,arreglo ;salta a subrutina arreglo
sbc A,05h
acumulador:
;valores en caso de que que exista saldo
luego del expendio
out (01h),A
ld D,A
jr monedain ;salta a la rutina principal
expendedor:
;si se introducen directamente 500 pesos
ld A,00h ;A se hace cero
add A,D
;Se suma con el acumulador de memoria ext
jr acumulador ;salta a una subrutina
arreglo:
;En caso de que la primera instruccion sea 0 no
se de 01h=FA
ld A,00h ;A se hace cero
ld D,A ;Se suma con el acumulador de memoria ext
out (02h),A ;salida del valor acumulado en pesos
jr acumulador ;salta a la subrutina acumulador
FIN: JR FIN
END
VI. CONCLUSIONES
Existen muchas alternativas para realizar la mquina
expendedora propuesta por el problema, pero el criterio de
eleccin para la solucin del problema del equipo de trabajo
est basado en la portabilidad del cdigo y la solucin de
pequeos errores con los que un usuario se pueda encontrar;
los anlisis de estos aspectos se realizaron divisando como
objetivo el desarrollo de la mquina expendedora
continuamente para que la solucin implementada vaya ms
all de los requerimientos y el nivel de satisfaccin del usuario
sea alto.
VII. REFERENCIAS
Assembly, Z. (s.f.). Multiplication and Division. Obtenido de
http://sgate.emt.bme.hu/patai/publications/z80guide/p
art4.html
Magazine. (s.f.). Introduccin y conceptos. Obtenido de
http://magazinezx.speccy.org/12/ensamblador.html
Programa en el ensamblador Z80. (s.f.). Obtenido de
http://galia.fc.uaslp.mx/~rmariela/micro/unidad53.pdf
Z-zilog. (s.f.). Manual Z80. www.zilog.com.

Vous aimerez peut-être aussi