Asembler w dzisiejszych czasach ma niewiele sensu, były dwa powody stosowania asemblera, optymalizacja szybkości wykonywania kodu i objętości.
Ja zaczynałem od asemblera na 8051, bo wszyscy tak robili, później jak pojawiły się AVR pisałem głównie w C czasami robiłem procedury obsługi przerwań w asemblerze. Wtedy uświadomiłem sobie że asemblera używałem do nadrabiania braków w peryferiach (i tam zależało mi na szybkości), skoro dzisiaj mogę dostać mikrokontroler z takimi peryferiami, jakich potrzebuję, dlaczego miał bym klepać jakieś softwarowe uarty i rozszerzenia timerów?
Zdarzało mi się też wygenerować kod asemblerowy z C i ręcznie poprawić.
Asemblerem można się pobawić żeby lepiej poznać działanie mikrokontrolera, ale jak trzeba napisać program który ma coś więcej do roboty to lepiej C.
Książka do AVR, Arkadiusza Krysiaka była niezła, obawiam się że na temat asemblera będziesz musiał poszukać starych książek.
W przypadku x86 jest dużo zawiłości, w czasach popularności asemblera ludzie pisali kod uruchamiany w trybie kompatybilności (rzeczywistym, 16 bitowym) pod DOSem dzisiaj czegoś takiego pewnie nawet nie uruchomisz na współczesnym OS-ie choć procesor pewnie by dał radę. Tu trzeba by znaleźć literaturę która opisuje przynajmniej pracę w trybie chronionym i wiele innych szczegółów zależnych od systemu operacyjnego, strukturę plików wykonywalnych, API, korzsytanie z bibliotek...
Nie chciało by mi się, mimo że sam kiedyś używałem asemblera.
EDIT: taki najprostszy program w asemblerze x86, nie jest aż tak trudno, jak mi sie zdawało:
https://www.youtube.com/watch?v=HgEGAaYdABA
Atmegę 8A programuje się przez SPI, nie ma tu JTAG-a a którego piny pytasz. Rozkład pinów dla SPI jest w dokumentacji JTAG iCE.
W pierwszym poście pisałeś o ATMEGA32 tam jest JTAG. Warto podczas pisaniu programu używać mikrokontrolerów które mają jakiś interfejs debugera, może to być JTAG, może być UPDI i jeszcze kilka innych. Czyli przykładowo pisać na ATMEGA32 a do docelowej aplikacji wrzucić do ATMEGA8A,
Typowo do SPI daje się pinheader o takim układzie wyprowadzeń i do tego pasuje kabel od programatora
avrdude warning: USB device with VID: 0x03eb and PID: 0x2141 not found
avrdude error: no device found matching VID 0x03eb and PID list: 0x2141
avrdude error: unable to open programmer atmelice_isp on port usb
avrdude done. Thank you.
Dodano po 15 [minuty]:
Już chyba działa tylko pytanie jak się wgrywa pliki na ten mikrokontlorer? Która opcja
mkAVRCalkulator bo nie działa mi opcja wszytaj plik jak wybiorę zakładkę ZAPIS. i teraz mam takie błąd
avrdude_mk.exe: Can't find programmer id "atmelice_isp"
Zainstalowałem AVRDUDE z ustawień podałem scieżkę i wszystko się popsuło
Użytkownik poszukiwał programatora kompatybilnego z Microchip Studio dla mikrokontrolera ATmega32. W dyskusji polecono programator Atmel ICE, jednak użytkownik szukał tańszej alternatywy. Pojawiły się pytania dotyczące podłączenia programatora do ATmega8A-PU oraz problemów z programowaniem, w tym błędów związanych z identyfikacją urządzenia przez AVRDUDE. Użytkownik z powodzeniem wgrał program do ATmega8A-PU, ale napotkał trudności z ATmega328P. Wskazówki dotyczące podłączenia pinów oraz rozwiązywania problemów z programowaniem były również omawiane. Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.