Zdravim, kde sa uklada navratova adresa pri pouzity instrukcie CALL? Mam v programe skok na podprogram instrukciu CALL ale v tom podprograme je aj instrukcia GOTO START pri splneni urcitej podmienky a ja mam problem, ze ked urobim to goto start tak program zacne blbnut, aky register treba v ynulovat aby to v programe bolo po instrukcii GOTO START ako keby tam neskocil z podprogramu? dufam ze ste ma pochpili, dakujeem
Založen: Oct 21, 2005 Příspěvky: 163 Bydliště: Praha
Zaslal: pá leden 12 2007, 20:49 Předmět:
Přesněji intrukce CALL uloží hodnotu z PC (Programového čítače) na vrchol zásobníku (Stack). Což znamená že bys musel po CALLnutí načíst hodnotu z vrcholu zásobníku (u x86 intrukce POP), ale silně pochybuju že taková instrukce je u jednočipů a i kdyby by byla tak to neni rozhodně dobrej nápad, se takhle šťourat v zásobníku A vlastně nechápu k čemu ti to je? :-O To jako nemůžeš použít nějakou instrukci nepodmíněnýho skoku (např. JMP)? :-O
Založen: Dec 26, 2004 Příspěvky: 1426 Bydliště: Košice - okolie
Zaslal: pá leden 12 2007, 21:57 Předmět:
picka nemaju JMP ale myslim ze je to GOTO nemozem to pouzit lebo na toto miest sa odvolavam z roznych miest a pri nesplneni podmienky sa vraciam spat odlkiaľ som sa odvolal, ak sa splni podmienka tak pride instrukcia goto v tom podprograme a vtedy ten program zblbne. Ta podmienka je asi tak na 10 riadkov a ak by som ju ma dat namiesto call , to call je pouzite asi 25 krat a taketo podobne podprogramy su 20 na ktore sa odvolavam tiez asi tak 25 krat na kazdy,tak mi to nevlezie do pamate PICka
Založen: Oct 21, 2005 Příspěvky: 163 Bydliště: Praha
Zaslal: pá leden 12 2007, 23:37 Předmět:
mikollar napsal(a):
picka nemaju JMP ale myslim ze je to GOTO nemozem to pouzit lebo na toto miest sa odvolavam z roznych miest a pri nesplneni podmienky sa vraciam spat odlkiaľ som sa odvolal, ak sa splni podmienka tak pride instrukcia goto v tom podprograme a vtedy ten program zblbne. Ta podmienka je asi tak na 10 riadkov a ak by som ju ma dat namiesto call , to call je pouzite asi 25 krat a taketo podobne podprogramy su 20 na ktore sa odvolavam tiez asi tak 25 krat na kazdy,tak mi to nevlezie do pamate PICka
Založen: Dec 26, 2004 Příspěvky: 1426 Bydliště: Košice - okolie
Zaslal: so leden 13 2007, 8:39 Předmět:
to nic, mna malo kto chape , mam podprogramy je ich 20 a kazdy ma asi tak 10 riadkov a v kazdom je to GOTO start, keby som nepouzil istrukciu CALL tak by som ten podprogram musel pisat vsade kde ho potrebujem. Ale potom by sa mi nezmestil cely program do pamäte PIC. Nejde Mi do hlavy ze preco to zblbne ked z podprogramu skocim funkciou GOTO preč ale potom už nedavam funkciu RETURN, tak ten program si lieta ako chce
Založen: Dec 26, 2004 Příspěvky: 1426 Bydliště: Košice - okolie
Zaslal: so leden 13 2007, 11:05 Předmět:
dik to sa zijde pre buducnost, len to START nie je zaciatok programu lebo pred zaciatkom je definovanie portov a stav portov sa mi nesmie zmenit pocas programu kym to nezadam priamo v programe
start:
nop ;zde se spustí podprogram pro nesplněnou podmínku
nop
nop
nop
nop
retlw 0 ; a jakmile se vykoná vrátí se zpět do hlavní smyčky za
instrukci CALL toto
toto: nop
nop
nop
pagesel start; pokud není splněna těmato dvěma řádkama
goto start ;provedeme skok na návěští start
return ;pokud je splněna vrátíme se odkud jsme přišli
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.