simualdor 8085

bena
21 de Noviembre del 2008
¿como ago para unir ests prgrams? el 1ro limpi la pantalla el 2do es el prgram en si q es el q realiza una potencia y el 3ro es el dl teclad en dond se debn intrducir ls numers para el prgram. aqui estan los programas;

;Programa pantalla
.define
texto e000h
tamtexto 25*40
.org 1000h
mvi b,e0h
mvi c, 00h
call clear_all
bucle:
jmp bucle
clear_all:
lxi h, texto
lxi d, texto+tamtexto
repite_c:
;tecla espacio en blanco
mvi a,32
mov m,a
inx h
;incrementar direccion
call comparador
jz fin_clear
jmp repite_c
fin_clear:
ret
comparador:
;compara de con hl(en 16 bits).
;devuelve a=1 si igual
mov a,e
cmp l
jnz no_igual
mov a,d
cmp h
jnz no_igual
mvi a,1
ret
no_igual:
mvi a,0
ret
;fin
hlt

;Programa potencia x
.define
tabla1 1000h
.data 1000h
db 3,4
.org 0040h
;inicio
lxi h,tabla1
mov d,m
inr l
mov b,m
mov a,b
mov c,b
dcr d
ciclo: dcr c
sumac: add b
dcr c
jnz sumac
mov b,a
mov c,m
dcr d
jnz ciclo
inr l
mov m,a
;fin
hlt

;Programa teclado
.define
tabla1 1a00h
.data 1a00h
db 00h,00h
.org 1000h
mvi b,e0h
mvi c,00h
bucle:
lxi h,1a00h
call tecl_in
jmp bucle
.org 0024h
tecl_in: inx b
tecl_mt: in 00h
cpi 0
jz tecl_mt
cpi 2ah
jc tecl_mt
cpi 3ah
jnc tecl_mt
stax b
filtro: call retardo
ret
retardo:
mvi d,1eh
mvi e,00h
ciclo1: dcr d
mov a,d
cpi 0
jz fin_ret
ciclo2: dcr e
mov a,e
cpi 0
jnz ciclo2
jmp ciclo1
fin_ret:mov a,00h
ret