Anonymní profil firinko – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil firinko – Programujte.comAnonymní profil firinko – Programujte.com

 

Příspěvky odeslané z IP adresy 91.127.189.–

firinko
Assembler › POmoc s assembler 8080 pls
4. 4. 2009   #98536

caute potrebujem pomoc s jednyn programom, ide o to ze sa ma nacitat retazec znakov a treba: "Určte počet slov obsahujúcich viac číslic ako písmen veľkej abecedy." problem je v tom ze mi to nejak nefunguje, ide o to ze neviem presne ako urobit aby som nemusle kontrolovat kazde pismenko a cislo zvlast a neviem taktie aby to vypisovalo viac ako 10, moze to spocitat slova a vypisat v hocijakej sustave, pouzivam na to emustudio
tu mam kod:

dcx sp    


lxi h,text1
call putstr
;Určte počet slov obsahujúcich viac číslic ako písmen veľkej abecedy.
mvi b,0 ; pocitadlo slov
mvi c,0 ; pocitadlo cisel
mvi d,0 ; pocitadlo pismen

char_loop:
call getchar
cpi 10 ; porovna register "a" s backspacom
jz char_end ; skoci na char_end, ak sa rovna
cpi 13 ; porovna register "a" s enterom
jz char_end
cpi 32 ; porovna register "a" s medzerou
jz char_medzera
cpi '9'+1 ;porovna sa s '0 az 9' (nejak to nefunguje)
jz char_addc
cpi 65 ;porovna sa s 'A' a tu by som chcel aby porovnalo vsetky pisemna velkej abecedy len to nejak neviem
jz char_addp

jmp char_loop
char_addc:
inr c ; vyhovujuce znaky++
jmp char_loop ; prejde na dalsi znak
char_addp:
inr d
jmp char_loop
char_medzera:
mov a,c ; skopirovanie pocitadla cisel "a"
cpi 0
jz char_loop ; ak ano, nacita sa dalsi znak
cmp d ; porovna sa, ci vsetky znaky boli vyhovujuce
mvi d,0
mvi c,0
jz char_loop
inr b
jmp char_loop


char_end:
mov a,c ; skopiruje sa pocitadlo vsetkych cisel"a"
cpi 1 ; ak nie su ziadne dalsie znaky,
jc print ; skoci na vypis
cmp d ; porovna posledne slovo
jz print ;ked sa nerovna, pokracuje sa vo vypise
inr b ; ak ano, inkrementuje sa pocitadlo vyhovujucich slov
print:
lxi h,text2
call putstr
mov a,b ; skopiruje sa pocitadlo vyhovujucich slov do registra "a"
adi '0' ;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 aritmeticke operatory ...',10,13,'Vloz text: ',0
text2: db 10,13,'Slov je: ',0
vlozeny: ds 30

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý