300
« on: 24.03.2010, 02:42:19 »
najdi slova ktore maju nemej ako 5 znakov
ako spravim aby mi nacitavalo iba pismena a nič ine a ako spravim že ked dam medzeru a zanou dalsiu aby tu dalsiu medzeru nebralo ako znak dik
org 1000
dcx sp ; inicializacia zasobnika (0FFFFh)
lxi h, retazec1 ; vytlac na terminal "Zadajte retazec:"
call putstr ; zavolaj funkciu na vytlacenie textu
lxi d, retazec0
call getline ; nacitaj cely riadok
lxi b, retazec0
mvi d, 0 ; v tomto registri sa bude ukladat pocet vhodnych slov
mvi e, 0
hladaj: ; hlavna slucka
ldax b
inx b
jz spocitaj
cpi 10 ; znak je novy riadok
jz spocitaj
cpi 0 ; znak je koniec retazca
jz koniec
inr d ; zvys pocet znakov v slove
jmp hladaj
spocitaj: ; spocita pocet znakov v slove
mov a, d
mvi d, 0
cpi 0
jc hladaj
cpi 5
jnc hladaj
inr e ; pocet hladanych slov v retazci
jmp hladaj
koniec:
lxi h, retazec2 ; vypis prvu cast informacie
call putstr
mov a, e
adi '0' ; vypis pocet najdenych slov
call putchar
lxi h, retazec3 ; vypis druhu cast informacie
call putstr
hlt ; KONIEC programu
include 'examples\8080\include\getchar.inc'
include 'examples\8080\include\getline.inc'
include 'examples\8080\include\putstr.inc'
include 'examples\8080\include\putchar.inc'
retazec1: db 'Zadajte retazec:', 10, 13, 0
retazec2: db 10, 13, 'Slova v dlzke 0 - 5 znakov sa v retazci nachádzaju ', 0
retazec3: db '-krat', 10, 13, 0
retazec0: ds 50