Kazalo po Svet elektronike forumu Svet elektronike
Revija za prave elektronike
 
AlbumAlbum   Pomoč pogostih vprašanjPomoč pogostih vprašanj   IščiIšči   Seznam članovSeznam članov   Skupine uporabnikovSkupine uporabnikov   Registriraj seRegistriraj se 
 Tvoj profilTvoj profil   Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil   PrijavaPrijava 

hip hip hip strašni trik!

 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Za začetnike
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 807
Kraj: Ljubljana

PrispevekObjavljeno: Pon Feb 28, 2005 11:19 am    Naslov sporočila: hip hip hip strašni trik! Odgovori s citatom

To je za tiste, ki smo vedno na knap z ram-spominom.
Se vam je že zgodilo, da ste neke spremenljivke uporabljali zelo kratek čas v programu? In vam je bilo škoda bajta zanjo? Meni se to kar naprej dogaja. Bom pojasnil na primeru.

Vzemimo, da imamo polje spremenljivk x in indeks i kot sledi

Koda:
dim x(16) as byte
dim i as byte 


in sedaj bi radi teh 16 znakov dali na lcd recimo tako:

Koda:
for i = 1 to 16
     lcd chr(x(i))
next 


ee, pa to ne gre, ker, če že imate v lcd funkcijo chr, argument funkcije ne sme biti indeksirana spremenljivka. Potrebno je definirari novo spremenljivko in zadevo razvolati tako:

Koda:
dim j as byte  'definiramo še eno bajt spremenljivko
for j=1 to 16
   j = x(i)
   lcd chr(j)
next 


To seveda gre, a smo porabili dodaten bajt, dodatno spremenljivko.
Gre pa tudi tako:

Koda:
for i = 1 to 16
   push {i}  ' spravimo staro vrednost i-a na stack
   i = x(i)  ' uporabimo isto spremenljivko
   lcd chr(i)
   pop {i}    ' spravimo staro vrednost nazaj v i
next 


Seveda bo nekdo takoj ugotovil, saj tudi s push-pop trikom porabimo en bajt ,samo da je tokrat v skladu (stack-u). To je seveda res, ampak, če se tega trika poslužimo večkrat na n različnih delih našega programa, smo prišparali (n-1) bajt, kajti vsi ti triki uporabijo isti bajt v skladu.

_________________
Sliši se paradoksalno, a je vendarle res:
Nekateri ljudje imajo vedno vse prav. No, včasih.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Za začetnike Časovni pas GMT + 1 ura, srednjeevropski - zimski čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
You cannot attach files in this forum
You cannot download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group