Académique Documents
Professionnel Documents
Culture Documents
cpu "z80.tbl"
hof "int8"
;fibonacci
;en la posicion 1000h estara cero y en la 1001h estara uno
;en la posicion 1050h el numero de terminos que se desea generar
ld ix,1000h;la serie se empieza a generar a partir de la direccion 1000h
ld a,(1050h); aqui esta el numero de terminos en la serie a generar
ld c,a; lo ponemos en un contador
dec c; decrementamos en dos por los primero dos
dec c; datos que nos dan para generar la serie
jr z,eti1 ; se comprueba que el numero sea mayor que dos, si es dos
termina
eti2: push ix ; se guarda el valor del indice el la pila, empieza ciclo eti2
inc ix; se incrementa el indice de la la serie
ld a,(ix+0); obtenemos el contenido para sumar
pop hl; extraemos de la pila la direccion del indice antes puesto
add a,(hl); sumamos el anterior con el original
ld (ix+1),a; cargamos a la siguiente direccion
dec c; decrementamos el contador
jr nz,eti2 ;mientras "c" diferente de cero haz ciclo eti2
eti1: halt; termina
--------------------------------------------------------------------------------------------------------------PALINDROMO
cpu "z80.tbl"
hof "int8"
;SOMETEMOS 53 4f 4d 45 54 45 4d 4f 53
;Se pone la palabra a comprobar si es palindromo
;a partir de la posicion de memoria 1000h
; en la posicion 1020h se sabra si la palabra es o no palindromo
; si hay ff en la posicion 1020h de memoria la palabra no es palindromo
; si hay 01 en la posicion 1020h de memoria la palabra es palindromo
ld ix,1000h; cargarmos la direccion de inicio de la palabra
push ix; guardamos en la pila
pop iy; sacamos en iy para posicionar en la ultima letra (al final de la
palabra)
ld d,0; un contador para saber cuantas conparaciones hacer
ld a,(1030h); cargamos en el tamao de la palabra a comprobar
ld c,a; lo necesitaremos dos veces
eti1: dec c ;empieza ciclo eti1, restamos uno a el tamao
jr z,eti2 ; preguntamos si es cero