Czy ktoś może wskazać jakiś kurs, książkę która omawia od podstaw programowanie za pomocą asemblera dla kogoś kto w ogóle jeszcze nie pisał programów i nie zna żadnych języków programowania ani środowisk. Bo rady w stylu czytać, czytać nic nie dają, bo człowiek czyta i nie rozumie czytanej treści więc przestaje czytać.
Swego czasu przeczytałem (do miejsca w którym przestałem rozumieć) książkę: "Podstawy programowania mikrokontrolera 8051" Piotra Gałki, ale w pewnym momencie następuje tam zbyt szybki przeskok - tak jakby w książce brakowało kartek
i ktoś kto kompletnie nigdy nie pisał programów nie za bardzo wie o co chodzi. Więc dla mnie są to tylko podstawy, ale tylko znajdujące się w... tytule książki, a z treści już coś innego wynika i ściana nie do przejścia, bo nie ma tam podstaw na których bazują tamtejsze podstawy
. I nagle człowiek nie chce już dalej tego czytać i nawet wykonywać tych ćwiczeń z zapalaniem diodki na porcie, bo nie wie skąd się taki a nie inny zapis wziął i dlaczego właśnie tak a nie inaczej jest to realizowane i skąd realizator wziął na to pomysł, że mu te a nie inne rozkazy wpadły do głowy aby daną czynność mu kontroler wykonał.
A nie chodzi o to by przepisywać bezmyślnie to co książka nam nakazuje klepać i kompletnie tego nie rozumieć. Bo co to za nauka w bezmyślnym przepisywaniu gotowca?
I wyszło w trakcie czytania na to, że ta książka o podstawach była pisana dla kogoś kto już się w miarę orientuje w samym asemblerze, a ja się nie orientuję i podstawy tam zawarte okazują się kosmosem.
Przejrzałem też książeczkę: "Mikrokomputery jednoukładowe rodziny mcs-51" Andrzej Rydzewskiego - to taki katalog, gdzie są opisane wszystkie rozkazy. Opisy tam także są dla ludzi już trochę wtajemniczonych - więc po prostu kompletny nemo może sobie tylko poczytać i gdybać tylko o co tam dokładnie chodzi w takim rozkazie i jak to do końca działa i co robi.
I teraz ja potrzebuję dalej rozwinąć ten temat, aby były pokazane rozkaz po rozkazie i przykłady ich zastosowania. Czyli ćwiczenia - celem zrozumienia jak to w całości gada i działa - że sobie nawet klepiesz ręcznie kody Bajtowe rozkazów, wstawiasz je do pamięci (np. jakiś SRAM z podtrzymaniem bateryjnym jako pamięć programu - tak jak w pierwszych miesięcznikach EdW z lat 90 były takie sterowniki węży dyskotekowych gdzie ręcznie zapełniało-programowało się pamięć kolejnymi Bajtami, taka metoda jak kojarzę była też stosowana w historycznym kursie-książkach o Z80 seria MIK1,2,3,... - autorstwa Stanisława Gardynika. Gdzie maszynowe kody rozkazów do zestawu edukacyjnego klepało się ręcznie bez jakiś tam asemblerów) - stąd muzealny 8051, do którego możemy sobie zapiąć zewnętrzną pamięć i bawić się do końca bez paniki, że EEPROM zaniemógł po 3 miesiącach katowania setkami przeprogramowań. Dzięki zewnętrznej pamięci widzieć co się konkretnie dzieje na liniach adresowych i danych pamięci, jak te dane "wylatują" z pamięci do kontrolera (bo sobie np zegar taktujący zwolnimy do kilkunastu Hz), które można wizualnie obserwować na diodkach podłączonych do tych magistral. A jak się na muzealnej kostce załapie temat to dopiero przejść na nowsze współczesne kontrolery typu AVR i wyżej.
Wstawiamy sobie np kilkanaście Bajtów takiego kodu maszynowego (bez nawet asemblera) klepiemy ręcznie kody rozkazów komórka po komórce pamięci do takiej pamięci zewnętrznej i patrzymy co kontroler sobie z tym będzie robił jak reagował, co się stanie jak jeden bit w rozkazie czy danej zmienimy, itp.
Więc chodzi o takie dziecinnie proste ćwiczenia-testy od najprostszych do bardziej zaawansowanych.
Czyli zaczynające się od kodu 00000000 - nic nie rób. A potem przez kolejne rozkazy typu aby na całym porcie wskoczyły jedynki a po 50 cyklach maszynowych zmieniły się na zera - tak aby można było dostrzec praktyczne zastosowanie każdego z rozkazów i co nam oferuje takowy. A potem jakieś generowanie fali prostokątnej na porcie, potem generowanie n-impulsów, a skończywszy na rozgryzieniu w ten sposób np. generowanie szablonu-ramki do obsługi magistrali i2c, gdzie do gotowca można potem powstawiać swoje dane i gadać z dowolną kostką po i2c. A potem spróbować zrozumieć jak wygenerować kompletną komunikację na jeszcze starszej magistrali 3 szynowej używanej np przez kostkę SAA1057.
Jest gdzieś coś takiego pokazane, opisane, wyjaśnione kawa na ławę? Czy raczej marzenie ściętej głowy?
Bo bez podstaw zrozumienia jak to w całości się kręci nie widzę sensu przechodzenia na wyższe poziomy, skoro podstaw nie rozumiem. To tak jak grzebać przy silniku nie rozumiejąc jak on działa w środku.