trocha som to upravil, ale stale to nieje ono, npocita to co to ma. Co tomu chyba?
org 1000
dcx sp ;inicializacia zasobnika (0FFFFh)
lxi h,text ;vypis text
call putstr
lxi d,vlozeny ;adresa pre vstup retazca
call getline
lxi b,vlozeny
mvi d,0 ;pocet vsetkych znakov v slove
mvi e,0 ;pocet malych pismen v slove
push psw ;vlozime si nulu do zasobnika, pocet vyhovujucich slov
char:
mvi e,0
mvi d,0 ;vynulovanie pocitadla
char_loop: ;citanie znakov a pocitanie pismen
ldax b ;nacitanie znaku z retazca
inr d
inx b ;posun v retazci doprava
cpi 10 ;porovnanie pre koniec nacitavania, enter
jz koniec_nacitania ;
cpi 32 ;porovnanie na koniec slova, space=medzera
jz pocet_slov
cpi 'a' ;vacsie alebo rovne ako a
jc char_loop
cpi 'z' + 1 ;mensie alebo rovne ako z
jnc char_loop
inr e ;zvysenie poctu pismen o 1
jmp char_loop
pocet_slov: ;pocitanie vyhovujucich slov
mov a,e ;presun hodnoty z registra D do akumulatora
cmp d ;porovnanie akumulatora a registra E
jc char ;ak je pismen malej abecedy menej skoc na char
pop psw ;vyber zo zasobnika do akumulatora
inr a ;zvysenie poctu vyhovujucich slov
push psw ;vlozenie z akumulatora do zasobnika
jmp char
koniec_nacitania: ;osetrenie ak sme spracovali posledne slovo
mov a,e
cmp d
jc vypis
pop psw
inr a ;zvysenie poctu vyhovujucich slov
push psw
jmp vypis
vypis:
lxi h, text2
call putstr
pop psw
adi '0'
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\newline.inc'
text: db 'Program vypise pocet slov(v dekadickom tvare) , ktore obshuju pismena malej abecedy', 10,13,10, 'Zadaj retazec: ',0
text2: db 10,13,'Vysledny pocet: ',0
vlozeny: ds 30