Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 11 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 29.07.08
Prihlásený: 26.12.18
Príspevky: 224
Témy: 57
Príspevok NapísalOffline : 31.03.2010 21:54

cawte... vedeli by ste mi opraviť zdroják?

zadanie: určte počet slov, ktoré obsahuje najviac 3 číslice. Výsledok má byť v bin. sústave
Všetko mi funguje ale keď dám samé medzery tak vypíše 1. Malo by vypísať nulu.

Kód:
org 1000

dcx sp        ;inicializacia zasobnika (0FFFFh)

lxi h,text1    ;skopiruje text1 do H
call putstr    ;vypis text1
lxi h,text2    ;skopiruje text2 ho H
call putstr    ;vypis text2

lxi d,vlozeny    ;adresa pre vstup retazca
call getline
lxi b,vlozeny

mvi d,0        ;pocet malych pismen
push psw        ;vlozenie nuly do zasobnika, (pocet vyhovujucich slov)
jmp char_loop    ;skok na char_loop

char:        ;nulovanie pocitadiel
mvi d,0        ;vynulovanie pocitadla pre pismena
mvi e,0

char_loop:        ;citanie znakov a pocitanie cislic v slove
ldax b        ;nacitanie znaku z retazca
inx b        ;posun v retazci doprava
cpi 10        ;porovnanie pre koniec nacitavania, (ASCII 10 = enter)
jz koniec_nacitania    ;skok na koniec_nacitania ak bol stlaceny enter
cpi 32        ;porovnanie pre koniec slova, (ASCII 30 = space)
jz pocet_slov    ;skok na pocet_slov ak bol stlaceny space
cpi '0'         ;vacsie alebo rovne ako 0
jc inre 
cpi '9' + 1     ;mensie alebo rovne ako 9
jnc inre
inr d        ;zvysenie poctu cislic o 1
inr e
jmp char_loop

inre:
inr e
jmp char_loop

pocet_slov:    ;pocitanie vyhovujucich slovň
mov a,e
cpi 0
jz char_loop
mov a,d        ;presun hodnoty z registra D do akumulatora
cpi 4        ;porovnanie akumulatora a registra E
jnc char        ;skok na char ak sa nastavi carry
pop psw        ;vyber zo zasobnika do akumulatora
inr a        ;zvysenie poctu vyhovujucich slov
push psw        ;vlozenie z akumulatora do zasobnika
jmp char        ;skok na char

koniec_nacitania:
mov a,e
cpi 0
jz vypis
mov a,d        ;presun hodnoty z registra D do akumulatora
cpi 4       ;porovnanie ci slovo obsahuje aspon 2 cislice
jnc vypis        ;skok na vypis ak sa nastavi carry
pop psw        ;vyber zo zasobnika do akumulatora
inr a        ;zvysenie poctu vyhovujucich slov
push psw        ;vlozenie z akumulatora do zasobnika
jmp vypis        ;skok na vypis

vypis1:        ;vypise na vystup 1
mvi a,'1'        ;presun hodnoty 1 do akumulatora
call putchar
dcr c        ;Dekrementacia pocitadla
jmp prevod        ;skok na prevod

vypis0:        ;vypise na vystup 0
mvi a,'0'        ;presun hodnoty 0 do akumulatora
call putchar
dcr c        ;Dekrementacia pocitadla
jmp prevod        ;skok na pr

vypis:        ;vypis poctu slov binarne
lxi h,text3    ;skopiruje text1 do H
call putstr    ;vypis text3
mvi c,8        ;presun hdnoty 8 do registra C (nastavenie pocitadla na 8)

prevod:
mvi a,0        ;presun hodnoty 0 do akumulatora
cmp c        ;porovnanie s registrom C
jz end        ;skok na end ak sa rovnaju
pop psw        ;vyber zo zasobnika do akumulatora
rlc        ;rotacia zasobnika dolava
push psw        ;vlozenie z akumulatora do zasobnika
jc vypis1        ;skok na vypis1 ak sa nastavi carry
jmp vypis0        ;skok na vypis0 ak sa nenastavi carry

end:        ;ukoncenie programu
call newline    ;novy riadok
hlt

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 'Program urcuje pocet slov obsahujucich najviac 3 cislice.',10,13,0
text2: db 'Zadaj retazec znakov:',10,13,0
text3: db 10,10,13,'Pocet slov v bin tvare: ',0
vlozeny: ds 50


Offline

Užívateľ
Užívateľ
assembler i8080 - jedna mala chyba, pls help

Registrovaný: 04.12.08
Prihlásený: 16.12.10
Príspevky: 59
Témy: 10
Príspevok NapísalOffline : 01.04.2010 18:25

No sám som zvedavý, či nám s tým niekto pomôže.

Ono to proste len tu prvú medzeru ráta ako znak, čiže...

____8 ENTER ...vypíše 2 namiesto 1
8 ___ 8____8 ENTER ....vypíše správne 3
_____ENTER .....vypíše 1...a malo by nulu







_________________
Robím, čo možem. Keď nerobím, nemožem.
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 02.04.2010 0:15

Prečo na začiatku nenastavuješ register E na nulu? (a prečo tam nemáš napísané, že v E je počet znakov toho slova, ale máš tam napísané tak zrejmé veci ako napr to, že obsah registra E presúvaš to registra A)

PS: Aký assembler má tak nechutnú syntax?


Offline

Užívateľ
Užívateľ
assembler i8080 - jedna mala chyba, pls help

Registrovaný: 04.12.08
Prihlásený: 16.12.10
Príspevky: 59
Témy: 10
Príspevok NapísalOffline : 02.04.2010 11:34

i8080.

No taže stačí doplniť mov e,0 napr medzi tieto dva riadky

mvi d,0 ;pocet malych pismen
push psw

a už to pôjde. Odskúšané.







_________________
Robím, čo možem. Keď nerobím, nemožem.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 29.07.08
Prihlásený: 26.12.18
Príspevky: 224
Témy: 57
Príspevok Napísal autor témyOffline : 02.04.2010 17:45

mne to nejde

Kód:
.
.
.
mvi d,0        ;pocet malych pismen
mov e,0
push psw        ;vlozenie nuly do zasobnika, (pocet vyhovujucich slov)
.
.
.

Kód:
[15;6] Syntax error:  ('0')


Offline

Užívateľ
Užívateľ
assembler i8080 - jedna mala chyba, pls help

Registrovaný: 04.12.08
Prihlásený: 16.12.10
Príspevky: 59
Témy: 10
Príspevok NapísalOffline : 02.04.2010 18:26

Jaj :D mvi e, 0 a nie mov e,0

sekol som sa :D







_________________
Robím, čo možem. Keď nerobím, nemožem.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 29.07.08
Prihlásený: 26.12.18
Príspevky: 224
Témy: 57
Príspevok Napísal autor témyOffline : 02.04.2010 19:04

super dik. máš u mňa :cheer: :spirit: príp. €.

dúfam, že tam už nenájde nič, čo by sa mu nepáčilo. :D


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 02.04.2010 21:28

Keby si mne dal program s tak zbytočnými komentármi, asi by som ťa niekam poslal. :)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.04.10
Prihlásený: 19.05.10
Príspevky: 4
Témy: 0
Príspevok NapísalOffline : 21.04.2010 14:34

stacilo vymazat jmp char_loop hned na zaciatku :)


Offline

Užívateľ
Užívateľ
assembler i8080 - jedna mala chyba, pls help

Registrovaný: 04.12.08
Prihlásený: 16.12.10
Príspevky: 59
Témy: 10
Príspevok NapísalOffline : 21.04.2010 14:47

JR55 píše:
stacilo vymazat jmp char_loop hned na zaciatku :)


More ty musíš byť divný chlapec komentovať 19 dní starý vyriešený topic :-P:D







_________________
Robím, čo možem. Keď nerobím, nemožem.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.04.10
Prihlásený: 19.05.10
Príspevky: 4
Témy: 0
Príspevok NapísalOffline : 21.04.2010 17:20

dEVIANT píše:
More ty musíš byť divný chlapec komentovať 19 dní starý vyriešený topic :-P:D


Ani nie kedze som sa dostal k tomuto foru az teraz. Hodil som tam iba svoj postreh s inym riesenim.

Inak by som skor prijal vysvetlenie pouzitia syntaxe C v asemblery 8080.

a neskor mozno poradenie pri rieseni mojej dalsej ulohy v asemblery 8086 a NASM. :)


Odpovedať na tému [ Príspevkov: 11 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Assembler i8080 help

v Assembler, C, C++, Pascal, Java

1

297

24.03.2013 22:07

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ASSEMBLER i8080 POMOC

v Assembler, C, C++, Pascal, Java

3

857

29.03.2009 13:12

bbeni Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Assembler i8080 delenie

v Assembler, C, C++, Pascal, Java

1

436

12.04.2010 21:20

dEVIANT Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Wordpress chyba (pls help)

v Redakčné systémy

0

912

06.05.2008 22:14

Gerky Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Chyba s USB pls help

v Ostatné zariadenia

5

405

25.10.2013 17:44

Steve147 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. assembler 8086- prevod z desiatkovej do 16-tkovej...help..

v Assembler, C, C++, Pascal, Java

0

1205

18.04.2010 20:15

erik.666 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pls help

v Ovládače

0

735

17.10.2008 15:21

ohhoho Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pls help

v Antivíry a antispywary

0

1156

05.08.2008 23:12

McDog Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pls. help

v Grafické karty

3

612

18.01.2008 8:35

Hiťo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pls help

v Procesory

0

801

11.02.2008 19:08

rudpid Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PLS HELP

v nVidia čipové sady

13

1063

21.12.2007 16:38

Smush Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. HELP ME PLS

v Antivíry a antispywary

0

577

10.12.2007 21:24

PE1987 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Convert pls help

v Video programy

0

570

21.08.2011 15:55

Lajk Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. DOSKA PLS HELP

v Intel čipové sady

1

541

22.12.2008 15:34

Rufus59 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Excel, pls help

v Ostatné programy

6

1688

29.03.2008 19:35

Intelman Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. .daa - pls help

v Ostatné programy

14

9274

02.11.2007 15:13

hidden Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra