Vie mi niekto poradit kde robim chybu program ma spocitat pocet slov obsahujucich viac cislic ako pismen malej abecedy
org 1000
dcx sp ; inicializacia zasobnika (0FFFFh)
lxi h,text1
call putstr ; vypis text1
call getline
lxi b,vlozeny
mvi d,0 ; pocitadlo cislic
mvi c,0 ; počítadlo malých písmen
mvi e,0 ; slov ktore obsahuju viac čísel ako písmen
; malej abecedy
zaciatok:
ldax b ; načíta sa zadaný znak do registra'a'
inx b ; posun znaku
cpi 13 ; porovná sa register 'a' s ENTER
jz vypis ; ak sa rovná skočí na výpis
cpi 32 ; porovná sa register 'a' s SPACE
jz test ; ak sa rovná skočí na TEST
cpi '0' ; väčšie alebo rovne 0
jc otestuj ; menej ako '0'?
cpi '9'+1
jnc otestuj ; menšie alebo rovne 9+1
inr d ; Ak je to číslo tak inkrementuje d o 1
jmp zaciatok
otestuj: ; Zistíme či je to malé písmeno
cpi 'a' ; Vacsie alebo rovne ako a
jc zaciatok
cpi 'z' + 1 ; Mensie alebo rovne ako z
jnc zaciatok
inr c ;Ak je to malé písmeno tak inkrementuje e o 1
jmp zaciatok
test:
mov a,d ; Presuň hodnotu z registra d do akumulátora
cmp c ; Porovnaj akumulátor s registrom d
inr e ; Ak je počet čísel menej ako počet malých písmen incrementuj e
jc zaciatok ;skoc na zaciatok
vypis:
lxi h, text2
call putstr
mov a,c
adi '0' ; hodnota a jej ASCII tvar ...
call putchar
call newline
hlt
include 'examples\8080\include\getline.inc'
include 'examples\8080\include\putstr.inc'
include 'examples\8080\include\putchar.inc'
include 'examples\8080\include\getchar.inc'
include 'examples\8080\include\newline.inc'
text1: db 'Pocet slov obsahujucich viac cislic ako písmen malej abecedy ...',10,13,'Vloz text: ',0
text2: db 10,13,'Pocet slov obsahujucich viac cislic ako pismen malej abecedy je: ',0
vlozeny: ds 30
Příspěvky odeslané z IP adresy 188.120.25.–
jano