[ 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 Ostatné

6

1136

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 Backend

5

490

15.08.2017 8:01

BX

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

Assembler i8080 help

v Backend

1

391

24.03.2013 22:07

walther

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

ASSEMBLER i8080 POMOC

v Backend

3

936

29.03.2009 13:12

bbeni

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

Assembler i8080 delenie

v Backend

1

521

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 Backend

10

1032

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 Backend

26

4190

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é programy

0

1670

23.01.2015 16:06

Stary

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

Problém s AMD Adrenaline alebo je to softvér či HW problém?

v AMD grafické karty

5

539

07.02.2026 0:30

funsat

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 Windows

17

2481

23.03.2009 10:41

FERDA23

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

Battlefield 3 SKIDROW problem + win7 problem

v Hry a herné konzoly

1

1940

22.09.2012 23:51

walther

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

45

5457

26.04.2012 11:14

netpeter77

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

2776

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

1769

22.02.2013 14:08

lucifer666x

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

PROBLEM

v Ostatné

6

692

02.02.2009 22:20

Puma®

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

problem

v Backend

4

704

07.10.2008 20:35

beginner



© 2005 - 2026 PCforum, edited by JanoF