Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ 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
Príspevok NapísalOffline : 12.04.2013 2:23

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.


Odpovedať na tému [ Príspevok: 1 ] 


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

1043

09.11.2008 15:45

ado21 Zobrazenie posledných príspevkov

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

407

15.08.2017 8:01

BX 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. 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 - jedna mala chyba, pls help

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

10

945

21.04.2010 17:20

JR55 Zobrazenie posledných príspevkov

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

3983

15.03.2011 13:47

katiMIR Zobrazenie posledných príspevkov

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

1362

23.01.2015 16:06

Stary Zobrazenie posledných príspevkov

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

2137

23.03.2009 10:41

FERDA23 Zobrazenie posledných príspevkov

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

1580

22.09.2012 23:51

walther Zobrazenie posledných príspevkov

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

4737

26.04.2012 11:14

netpeter77 Zobrazenie posledných príspevkov

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

2305

14.06.2008 10:36

$ph!nX Zobrazenie posledných príspevkov

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

1465

22.02.2013 14:08

lucifer666x Zobrazenie posledných príspevkov

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

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

4

574

07.10.2008 20:35

beginner Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

1

397

05.08.2008 12:54

elsofi Zobrazenie posledných príspevkov

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

v Počítačové hry

9

925

12.09.2009 9:28

Dicktafon 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