[ Príspevok: 1 ] 
AutorSpráva
Offline

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

Registrovaný: 20.10.08
Prihlásený: 12.04.13
Príspevky: 29
Témy: 9 | 9

ahojte. mám problém so zadaním programu ktorý má z načítaných slov zistiť počet tých, ktorých súčet ascii kódov v slove je väčší ako 200 (slová sú oddelené medzerou).
budem rád každej pomoci, lebo doteraz som programoval iba vo vyšších jazykoch a mám trochu problém myslieť v assembleri, prípadne ma opravte ak som aj nesprávne "uvažoval" pri riešení problémov. prečítal som zopár manuálov o i8080 ale okrem vysvetlenia inštrukcií som sa z nich toho veľa nedozvedel.

slová som načítaval zo vstupu a ukladal si vstup po znakoch do akumulátora. program prejde na výpis výsledku pri konci vstupu.

fragment kódu :

Kód:
cyklus:   pop PSW      ;vyber znaku zo stacku
   cpi 0      ;zistenie posledneho znaku
   jz vystup      ;ak bol zisteny posledny znak prejdeme na vystup
   mov C,A      ;odpamatanie znaku
   sui ' '      ;odcinanie od hodnoty znaku v akumulatore hodnotu medzer
   jnz je_znak   ;ak vysledkom nie je nula tak znak nebol medzera a skocime
   mvi C,0      ;nulujeme registre
   mvi D,0
   mvi H,0
   jmp cyklus      ;pokracujeme na dalsi znak

je_znak:   mov A,C      ;nacitanie znaku
   add D      ;pripocitame predchadzajuce hodnoty znakov v slove
   mov D,A      ;zapamatame si vysledok
   sub E
   jc cyklus      ;ak je vysledok nulovy tak mame sucet prave 200
   inr H      ;inkrementovanim si nastavime priznak prekrocenia hodnoty 200
   mov A,H      ;prenesenie do akumulatora
   cpi 1      ;
   jnz cyklus      ;ak uz bol raz nastaveny priznak v slove (>1) tak neinkrementujeme pocet slov
   inr B      ;inkrementacia poctu vyhovujucichslov
   jmp cyklus      ;pokracujeme na dalsi znak


chybou môjho programu, ktorú som nevedel ako vyriešiť je zistenie "vyhovujúceho" slova. v programe (konkrétne od návestia je_znak) som na to išiel tak, že som hodnotu aktuálneho znaku pripočítal k hodnote predchádzajúcich znakov v slove a potom od tej hodnoty som odčítal 200 (z registra E) za predpokladu ak bol výsledok záporný (nastal carry) tak ešte znaky v slove nemajú súčet viac ako 200. v opačnom prípade máme už vyhovujúce slovo.
no problém som mal v tom, ak pri sčítavaní hodnôt znakov som dostal hodnotu väčšiu ako 255. napríklad:
slovo "aaa" má hodnotu znakov >200 (291). a tak po pripočítaní 3. znaku som mal v akumulátore hodnotu 36, ktorú si program aj zapamätal a pokračoval v chybnom výpočte.

preto sa pýtam. je nejaký iný spôsob akým riešiť to overovanie znakov v slove? alebo ako vyriešiť sčítavanie hodnôt s výsledkom >255 ?

ešte raz budem veľmi vďačný za každú pomoc.


 [ Príspevok: 1 ] 


i8080 pretečenie akumulátora - problém



Podobné témy

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

Faktorial - pretečenie

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

6

1074

09.11.2008 15:45

ado21

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

Pretečenie countera v C (Wiring)

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

5

440

15.08.2017 8:01

BX

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

Assembler i8080 help

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

1

328

24.03.2013 22:07

walther

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

ASSEMBLER i8080 POMOC

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

3

892

29.03.2009 13:12

bbeni

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

Assembler i8080 delenie

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

1

477

12.04.2010 21:20

dEVIANT

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

assembler i8080 - jedna mala chyba, pls help

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

10

977

21.04.2010 17:20

JR55

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

Asm i8080: vypisat pocet slov s dlzkou 2 az 5 znakov

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

26

4050

15.03.2011 13:47

katiMIR

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

M Firefox problém so sťahovaním a GCH problém s updatom

v Sieťové a internetové programy

0

1594

23.01.2015 16:06

Stary

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

Problém so zobrazovaním www stránok, problém užívateľa

v Operačné systémy Microsoft

17

2354

23.03.2009 10:41

FERDA23

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

Záhadný problém s PC... problém procesora?

[ Choď na stránku:Choď na stránku: 1, 2 ]

v AMD - Advanced Micro Devices

45

5166

26.04.2012 11:14

netpeter77

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie.

Battlefield 3 SKIDROW problem + win7 problem

v Počítačové hry

1

1819

22.09.2012 23:51

walther

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

Problém s MB ASUS P5K - problém s Realtek

v Ovládače

4

2613

14.06.2008 10:36

$ph!nX

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

Problém s HDD / Problém s bootovaním

v Pevné disky a radiče

4

1675

22.02.2013 14:08

lucifer666x

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

problem?

v Intel - Integrated Electronics

2

651

07.01.2009 9:33

f4r0

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

Problem?

v Pamäte

11

812

05.05.2009 17:55

bezi1112

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

problem

v Intel čipové sady

2

785

03.03.2022 7:42

vaci



© 2005 - 2025 PCforum, edited by JanoF