programowanie mikroprock w C i rejestry

Ostatnio przy namowie kolegi zainteresowalem sie programowaniem mikroprocesorow, wybor padl na at90s2313, programy pisze w C, ale mam pytanie. Kiedys pisalem programy w asemblerze do mikroprocesorow, i tam odpowiednie zmienne wrzucalem do wybranych przez siebie rejestrow, przy pisaniu w C to kompilator sam wybiera rejestry do ktorych wpisuje zmienne.

I pytanie: Czy piszac programy w C moge w jakis sposob sam zdecydowac, ktore zainicjowane przeze mnie zmienne maja trafic do ktorego rejestru? Czy moge to jakos zadeklarowac? Czy jednak nie mam nad tym kontroli i wszystko nalezy do kompilatora?

Reply to
Sebastian
Loading thread data ...

Albo do pamięci RAM. W rejestrach to on np. zero trzyma ;)

Na tym polega piękno C, że nie musisz. Podpowiedz, którym kompilatorem się posługujesz, to coś podpowiemy. W przypadku avr-gcc będzie to np.:

register unsigned char counter asm("r3");

Pozdrawiam

Reply to
Marcin Stanisz

avr-gcc

wielkie dzieki :)

Reply to
Sebastian

Mon, 18 Apr 2005 23:28:06 +0200, na pl.misc.elektronika, Sebastian napisał(a):

BTW, r0 i r1 są zarezerwowane, praktycznie można użyć pozostałych dolnych rejestrów. Ale... każda taka operacja zmniejsza możliwości manewru kompilatora, któremu ograniczasz dostępne zasoby, więc zawsze warto się zastanowić czy to rzeczywiście potrzebne.

Reply to
Jurek Szczesiul

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.