ejercicio de assembler

hola: necesito hacer un ejercicio en assembler pero nose como hacerlo alguien me podria ayudar.
el ejercicio es el siguiente:
Se tiene una Base de datos de longitud 20H bytes que comienza en la dirección 100H. Se pide contar la cantidad de veces que se repite el código ASCII correspondiente a la letra B y almacenar las direcciones en que se encuentra. El conteo y las direcciones, se deben almacenar a continuación de la base de datos.
no entiendo como hacerlo porque recien estoy partiendo. este ejercicio es para el z80.
si alguien me ayuda estaria muy agradecido.
hasta luego y gracias.
 
Me alegro de que alguien este interesado en aprender el Z80.
Evidentemente es un procesador sencillo y potente, con un juego de instrucciones muy amplio.
Para tu problema tienes una instruccion muy potente que es CPIR.
Lo que hace es comparar e incrementar.
1º A-(HL) Resta del acumulador A el contenido de la memoria a la que apunta HL. El acumulador A mantiene el valor original, la resta solo afecta a los flags.(Si A=(HL) el flag P/V se pone a uno)
2º HL=HL+1 Incrementa el contenido de HL
3º BC=BC-1 Decrementa el contenido de BC. Cuando BC=0 el flag Z se pone a cero.
4ºLa instrucion se ejecuta hasta que el contenido de BC sea cero.

Solo tienes que cargar
A con el valor del caracter "B"
HL con el valor 100H
BC con el valor 20H
y ejecutar CPIR
Ahora solo tienes que guardar por ejemplo en 120H el numero de veces que encuentras el valor "B".
Y a partir de 121H el contenido de los registros H y L cada vez que encuentres el valor de "B".
Cuando BC=0 finalizas el programa.
Ya les gustaria a los PIC y otros micros tener una instruccion como esta.
Intentalo, si tienes problemas pregunta.
 
Atrás
Arriba