jnk0le napisał: Jakieś źródło ?
Jedynie własne eksperymenty.
Piotrus_999 napisał: Proponuje Atmel Studio symulator i analizowac co kody robią.
Niestety nie mam pojęcia jak się za to zabrać.
Piotrus_999 napisał: A możesz mi napisać dlaczego się męczysz w asm. Jest to zadanie w szkole? Bo nie rozumiem po co się tak pałować. A i tak jak widać efekt jest średni. Asembler tak naprawdę dobrze znać, żeby czasami napisać jakąś krótka funkcję do C (aczkolwiek już mi się to od dawna nie zdarzyło).
Ależ ja się męczę, jest to dla mnie przyjemność.
Wcześniej pisałem w Bascom-ie, lecz niestety zżera on tyle pamięci, że aż strach.
Kolega
TMF już pisał, jak mogą być przydatne wstawki ASM w C.
Udało mi się skrócić podprogramy.
Zaloguj się, aby zobaczyć kod
Przy odczycie w R17 mam interesujący mnie bajt.
A dodatkowo użyłem rejestr indeksowy Z, tak więc
Wczytaj_adres_startu mogę używać również do zapisu\odczytu pamięci SDRAM.
Niestety przy zapisie do SRAM muszę zastosować zmienną cztero bajtową, ponieważ posiadam pamięć zewnętrzną SPI
W25Q128FV.
Zauważyłem jeszcze jeden szczegół w twoich przykładach.
Chodzi o
LD i
ST.
Nie rozumiem dlaczego kompilator nie zastosował zapisu:
Zaloguj się, aby zobaczyć kod
oraz
Zaloguj się, aby zobaczyć kod
Dzięki takiemu zapisowi w pętli nie trzeba zwiększać\zmniejszać adresu, co przekłada się na większą objętość kodu, jak i spadek prędkości działania podprogramu.
Tak więc bez liczenia taktów mój przykład jest lepszy pod względem prędkości, jak i objętości kodu.
Jednak i tak prawdopodobnie przy odczycie będę musiał zastosować pętlę
FOR NEXT, ale i to nie sprawi mi problemu.