stack u PIC 18Fxxx

Marek Pavlu marekpavlu@mybox.cz
Čtvrtek Leden 6 22:46:30 CET 2005


Zdravim,

Ono se to GOTO tyka hlavne vyssich jazyku.
Zajimave je, ze kazdy, kdo toto tvrdi vzdy zapomene na mensi detail, a
to zminit, ze while, for, break ale i blby if se proste bez goto
neobejdou...
Jiste, jiste, není to presne třeba goto, ale i jina rozhdovaci instrukce
s odskokem, ale prave o to jde. O ten skok, ktery proste procesor nemuze
predvidat, protoze jehom provedeni je obestreno tajemstvim
budoucnosti:))))...
Prizemneji receno, par instrukci pred touto podminkou(skokem) muze danou
podminku odhodit kterymkoli smerem...

Takze ja osobne sice nepouzivam goto stylem harakiri, ale vyuziti se
vždy najde. Bud z duvodu elegance(nazornosti, prehlednosti) kodu nebo
proste jen z lonosti:).

Problem typu GOTO bych u asm resil jen tam, kde jsou rozdily v case
provedeni nebo velikosti kodu. Ale stejne nakonec nejaky ten skok tam
bude...


S pozdravem,
		Marek Pavlu

// -----Original Message-----
// From: hw-list-bounces@hw.cz [mailto:hw-list-bounces@hw.cz] On Behalf
Of
// Jan Kral
// Sent: Wednesday, January 05, 2005 4:18 PM
// To: HW-news
// Subject: RE: stack u PIC 18Fxxx
// 
// Jiste ze v uvedenem mate pravdu. Puvodni dotaz vyznel tak, ze je to
// casove kriticke a jakykoliv test navic je nemozny nebo nechteny.
Takze je
// jen na tom kdo to programuje, aby se samozrejme takoveto potencialni
// chybe vyhnul, mnou popsanym zpusobem ziska co potrebuje a to rychle.
// Jinak se bude tezko falsovat z cyklu nejaka podminka, kdyz treba v
dobe
// vyvolani preruseni jeste neni ani naplneny registr, ktery se testuje
a
// pod.
// 
// Kdyz uz nekdo zavrhuje pouziti prikazu goto, tak jak se bez nej
obejit v
// ASM?
// 
// JK
// 
// 
// > > Cim by se dal timto udelat bordel? Jestlize z obsluhy
// > preruseni odejdu pres RET, tak je to uplne stejne jako kdyz
// > navratovou adresu ze zasobniku vyhodim a jdu presne kam
// > potrebuji JMPem. Podivejte se nekdy jak se predavaji
// > parametry treba v C podprogramum a jak vraceji vysledky. To
// > je teprve libusta a zadny bordel v tom neni.
// >
// > Tak priklad:
// >
// > Ak nastane prerusenie v bode *1, v stacku mate register, ktory tam
// > zostane uz navzdy. Podobne v bode *2, vtedy tam zostane
// > navratova adresa
// > odkial bol podprogram volany.
// > Pochopitelne sa da urobit aj "upratovanie", t.j. prestavit
// > stack pointer
// > v bode *3 na dohodnutu hodnotu; ale to moze a nemusi vadit. Toto je
// > presne pristup, ktorym sa vytvori mozno funkcny, ale
// > neudrziavatelny kod
// > (ak ho po roku upravite, uz sa nebudete pamatat na tu fintu a
// > uprava ju
// > pokazi). A to je presne aj pricina, preco Wirth zavrhuje - inak ak
sa
// > pouzije uvazene, velmi uzitocny - prikaz goto.
// > Koser je tu slucku ukoncit; a kedze v nej je tak ci tak test (na
// > ukoncenie vzorkovania po naplneni buffra) staci podmienku v
preruseni
// > "sfalsovat".
// _______________________________________________
// HW-list mailing list  -  sponsored by www.HW.cz
// Hw-list@list.hw.cz
// http://list.hw.cz/mailman/listinfo/hw-list
---
avast! Antivirus: Odchozi zprava cista.
Virova databaze (VPS): 0501-0, 04.01.2005
Testovano: 6.1.2005 1:52:03
avast! (c) copyright 2000-2003 ALWIL Software.
http://www.avast.com







Další informace o konferenci Hw-list