Marek P.
Guest
Mon Aug 21, 2006 8:29 am
Witamm,
Nie często zdarza mi się pisać wstawki asemblerowe i utknąłem. Prosze o
pomoc.
W 'C' mam zadeklarowaną zmienną
volatile u08 tablica[100];
Potrzebuję naprawdę szybkie i krótkie przerwanie. Więc piszę je w
asemblerze.
Jak do rejestru X,Y, czy Z załadować adres (pointer) do tej tablicy?
Pozdr.
Marek
Krzysiek
Guest
Mon Aug 21, 2006 10:01 am
W dniu 21-08-2006 10:29, Marek P. napisał:
Quote:
Witamm,
Nie często zdarza mi się pisać wstawki asemblerowe i utknąłem. Prosze o
pomoc.
W 'C' mam zadeklarowaną zmienną
volatile u08 tablica[100];
Potrzebuję naprawdę szybkie i krótkie przerwanie. Więc piszę je w
asemblerze.
Jak do rejestru X,Y, czy Z załadować adres (pointer) do tej tablicy?
Nie jestem pewien tego rozwiązania, ale WinAVR pozwala chyba na taką
konstrukcję:
u08 *wskaznik @r26;
i dalej
wskaznik = tablica;
Po prostu spróbuj stworzyć zmienną, która zostanie na siłę przechowywana
w rejestrze X, Y lub Z i wepchaj do niej adres tej tablicy.
--
Pozdrawiam
Krzysiek
Marek P.
Guest
Mon Aug 21, 2006 10:19 am
Użytkownik Krzysiek napisał:
Quote:
W dniu 21-08-2006 10:29, Marek P. napisał:
Witamm,
Nie często zdarza mi się pisać wstawki asemblerowe i utknąłem. Prosze o
pomoc.
W 'C' mam zadeklarowaną zmienną
volatile u08 tablica[100];
Potrzebuję naprawdę szybkie i krótkie przerwanie. Więc piszę je w
asemblerze.
Jak do rejestru X,Y, czy Z załadować adres (pointer) do tej tablicy?
Nie jestem pewien tego rozwiązania, ale WinAVR pozwala chyba na taką
konstrukcję:
u08 *wskaznik @r26;
i dalej
wskaznik = tablica;
Po prostu spróbuj stworzyć zmienną, która zostanie na siłę przechowywana
w rejestrze X, Y lub Z i wepchaj do niej adres tej tablicy.
Witam,
Dziękuję za pomoc,
Ale znalazłem właśnie lepsze rozwiązanie na avrfreaks

. Dokladnie to
czego szukałem.
ldi r24,lo8(zmienna)
ldi r25,hi8(zmienna)
pozdr
Marek