POmoc s assembler 8080 pls – Assembler – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

POmoc s assembler 8080 pls – Assembler – Fórum – Programujte.comPOmoc s assembler 8080 pls – Assembler – Fórum – Programujte.com

 

firinko
~ Anonymní uživatel
3 příspěvky
4. 4. 2009   #1
-
0
-

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

Nahlásit jako SPAM
IP: 91.127.189.–
o-lox0
Super člen
5. 4. 2009   #2
-
0
-

cpi '9'+1       

jz char_addc
cpi 65
jz char_addp


Takhle jednoduse se porovnavani delat proste neda !
Na to musis pouzit JC - coz znaci ze vysledek je pod porovnavanym znakem
a jeste pak horni hranici s JNC kde znak je nad nebo ekvivalentni (pak napr. nebyla podm. splnena)

Pricemz pokud ocekavas jen vstup jako cisla a znaky velke abecedy
staci ti to rozdelit kdekoliv uprostred jednou, po tom co zkontrolujes char_end,char_space.

cmp d      ; porovna sa, ci vsetky znaky boli vyhovujuce

jz char_loop
....
cmp d ; porovna posledne slovo
jz print ;ked sa nerovna, pokracuje sa vo vypise

To same zde jak to muzes porovnavat s Rovnosti, to te netrkne ???

 mov a,c      ; skopiruje sa pocitadlo vsetkych cisel"a" 

cpi 1 ; ak nie su ziadne dalsie znaky,
jc print ; skoci na vypis

To tady si to kupodivu pouzil uplne zbytecne, :-)
dalo se cpi 0, a ti bystrejsi by to nepsali a preskocili cele ... ale to jsem si JEN nemohl odpustit, sorry

Davej si pozor na max. pocet 9 u svyho printu, vylepsit si to muzes napr. pouzitim kodu BCD (skrz arit. ins. DAA a treba rotaci pri vypisu s log. soucinem), nepochopil jsem jestli to povazujes take za problem

Nahlásit jako SPAM
IP: 85.71.152.–
firinko
~ Anonymní uživatel
3 příspěvky
5. 4. 2009   #3
-
0
-

To o-lox : ono ide o to ze to mu asembleru nejak moc nerozumiem lebo cvika nestoja zanic a na nete som nenasiel skoro ziadne ukazkove programy

Nahlásit jako SPAM
IP: 95.102.36.–
bbeni0
Návštěvník
5. 4. 2009   #4
-
0
-

Subu mas na cvikachaka si skupina

Nahlásit jako SPAM
IP: 85.248.5.–
firinko
~ Anonymní uživatel
3 příspěvky
5. 4. 2009   #5
-
0
-

To bbeni : 7 skupina som a na svikach sme mali dokopy nic len ten program zakladny vysvetleny co bol v emu studiu

Nahlásit jako SPAM
IP: 78.99.103.–
o-lox0
Super člen
5. 4. 2009   #6
-
0
-

To firinko : Vas to neuci protoze to sami davno neumi :-))

Nahlásit jako SPAM
IP: 85.71.152.–
bbeni0
Návštěvník
5. 4. 2009   #7
-
0
-

to firinko ja mam so Subom nocne "vyučovanie",podobne cviko,v 8086 sme este nič nerobili...

Nahlásit jako SPAM
IP: 147.232.180.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 111 hostů

Podobná vlákna

Assembler 8080 pomoc — založil bbeni

Pls, pomoc — založil Ondřej Šplíchal

PLS potrebujem pomoc :) — založil igor

Dulezite!pls pomoc — založil Olda

 

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