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

Asm 8080 chyba – Assembler – Fórum – Programujte.comAsm 8080 chyba – Assembler – Fórum – Programujte.com

 

Ezechiel0
Newbie
17. 3. 2010   #1
-
0
-

Ahojte,
mam mensi problem a neviem si s nim poradit. Program by mal z konzoly nacitat retazec konciaci Enterom a mal by v nom spocitat binarne slova (teda len obsahujuce 0 1). No a nejde mi ich spocitat :(, staci ak dostanem spravnu hodnotu do registra. Vypis mi netreba. Vopred Vam Dakujem za rady a pripomienky.



org 1000

dcx sp ; inicializacia zasobnika (0FFFFh)

lxi h,vyzva
call putstr ; vypis nadpisu a vyzvanie k zadaniu textu

lxi h,buffer ; adresa pre vstup textu
call getline ; nacitame text z klavesnice

lxi b,buffer ; adresa testovaneho retazca -> B,C

mvi e,0 ; pocet spravnych slov
nuluj: mvi d,0 ; ak je znak nevyhovujuci

loop:
ldax b

cpi 10 ; porovna sa register "a" s backspacom
jz end ; skoci sa na end, ak sa rovna

cpi 13 ; porovna sa register "a" s enterom
jz end ; skoci sa na end, ak sa rovna

cpi 32 ; porovna sa register "a" s medzerou
jz space ; skoci sa na space, ak sa rovna

cpi 48 ; nacitany znak sa porovna s '0'
jz loop ; skoci sa na loop, ak sa rovna

cpi 49 ; nacitany znak sa porovna s '1'
jz loop ; skoci sa na loop, ak sa rovna

jmp minus ; zly znak, skoci na minus

plus:
inr e
jmp loop ; nacita sa dalsi znak

minus:
inr d
jmp loop

space:
mov a,d
cpi 48 ; porovna register "a" s '0'
jz plus ; skoci na plus, ak sa rovna
jmp nuluj ; skoci na nuluj

; zobrazenie vysledku
end: lxi h,vysledok ; skopiruje sa
call putstr ; vypise
;dokoncit :)
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'

vyzva: db 'Spocitanie slov v texte, ktore obsahuju len 0 a 1.',10,13,'Zadajte text: ',0

vysledok: db 10,13,'Pocet slov v texte je: '
pocet: db 0

buffer: ds 1024 ; vyhradime 1 kbyte pre vstupny text
hlt ; ukonci sa program

Nahlásit jako SPAM
IP: 147.232.179.–
illioner0
Stálý člen
17. 3. 2010   #2
-
0
-

Nezkousel jsem, napisu jen to co vidim:

minus:
inr d ; korektnejsi by bylo mvi d,1
jmp loop

space:
mov a,d
cpi 48 ; porovna register "a" s '0' ; URCITE NE ale takto: cpi 0
jz plus ; skoci na plus, ak sa rovna

Nahlásit jako SPAM
IP: 85.71.152.–
Nechápu softwarové firmy, ktere utrácejí za čim dál těžkopádnější DRM ochranu!! Vidět kolem snahu o free2play model je jako příjemné připomenutí časů shareware (jen ten Microsoft stále nic nepochopil)
Ezechiel0
Newbie
17. 3. 2010   #3
-
0
-

dik, ale aj tak mi to stale nejde, akokolvek na to pozeram tak neviem na to prist :)

Nahlásit jako SPAM
IP: 147.232.179.–
illioner0
Stálý člen
17. 3. 2010   #4
-
0
-

to bude tim ze stojis porad na miste, nemenis ukazate BC pracujici s datama, mozna si to prehlidl, ale kdyz se podivam jak si porovnaval d s 48 tak spis strilis celej kod dost od boku

Nahlásit jako SPAM
IP: 85.71.152.–
Nechápu softwarové firmy, ktere utrácejí za čim dál těžkopádnější DRM ochranu!! Vidět kolem snahu o free2play model je jako příjemné připomenutí časů shareware (jen ten Microsoft stále nic nepochopil)
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, 72 hostů

Podobná vlákna

Hello world v 8080 — založil chaser

8080 prevod — založil Jurosh

Asm v C++ — založil Sir_E

Assembler 8080 pomoc — založil bbeni

Podminka v ASM — založil Mutagen

 

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