programowanie mikroprock w C i rejestry

Apr 18, 2005 3 Replies

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?


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

avr-gcc

wielkie dzieki :)

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.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required