videl som ze tu dokazete pomoct s Asemblerom a tak by som sa na vas rad obratil s tymto problemom
Načítajte z klávesnice reťazec znakov ukončený znakom "nový riadok"
Slová vo vstupe sú oddelené najmenej jedným znakom "medzera"
Uvažujte prvé aj posledné slovo vstupu
Určte počet slov začínajúcich a končiacich rovnakým znakom
počet (0-255 slov max)(vyhovujúcich slov) vytlačte dvojkovo
z tohto vychadzam (je to iny program, ale prva cast je zhodna ak sa dobre pamatam)
Kód: Vybrať všetko
org 1000
dcx sp ; inicializacia zasobnika (0FFFFh)
lxi h,text1
call putstr ; vypis text1
lxi d,vlozeny ; adresa pre vstup retazca
call getline ; nacitaj z klavesnice
lxi b,vlozeny
mvi d,0 ; pocitadlo cislic
char_loop:
ldax b
inx b
cpi 10 ; koniec vstupu?
jz char_end
cpi 13
jz char_end
cpi '0'
jc char_loop ; menej ako '0'?
cpi '9'+1
jnc char_loop ; viac ako '9'+1?
inr d ; cislica
jmp char_loop
char_end:
lxi h,text2 ; vypis text2
call putstr
mov a,d
adi '0' ; hodnota a jej ASCII tvar ...
call putchar
call newline
hlt
include 'examples\8080\include\getchar.inc'
include 'examples\8080\include\getline.inc'
include 'examples\8080\include\putstr.inc'
include 'examples\8080\include\putchar.inc'
include 'examples\8080\include\newline.inc'
text1: db 'Pocet cislic vo vstupe ...',10,13,'Vloz text: ',0
text2: db 10,13,'Cislic: ',0
vlozeny: ds 30napadlo ma nieco take ze do jedneho registra by sa ulozil kod zaciatocneho znaku a do dalsieho kod nasledujuceho znaku
ak by za nim bola medzera, kody by sa porovnali a ak by sa zhodovali, inkrementoval by som cislo v dalsom registry, co by bol vlastne counter vyhovujucich slov
ak by za nasledujucim znakom nebola medzera alebo enter, ale iny znak, tak by sa kod znaku prepisal tym dalsim a takto by to islo
uvazujem spravne alebo sa to robi nejako inac?
dakujem za akykolvek napad a pomoc uz vopred