Jeśli nie zdecydujesz się nauczyć trochę asemblerze, powinieneś nauczyć się czegoś podobnego asemblerze 6502 na Commodore 64 (emulowane, oczywiście), lub 68000 na Amidze.
Możesz dowiedzieć się więcej o Commodore 64 tutaj ...
http://thepiratebay.org/torrent/4609238/Tag3-Saal2-Slot16_00--ID2874-the_ultimate_commodore_64_talk-Main
Klasyczna książka, którą musisz znać, to ta opisana tutaj ...
http://reprog.wordpress.com/2010/03/12/programming-books-part-3-programming-the-commodore-64/
Prawdopodobnie możesz znaleźć skan PDF, jeśli się rozejrzysz.
IMO, 6502 jest łatwiejszy niż Z80, a 68000 jest łatwiejszy niż 8086 - bardziej regularne zestawy instrukcji itp.
Ale procesor jest tylko jednym aspektem sprzętu. Ponadto nowoczesny procesor jest ogromnie inną bestią i robi rzeczy, które są przezroczyste nawet z punktu widzenia kompilatorów - na przykład przedstawia wirtualną przestrzeń adresową.
Szczególną zaletą 6502 na C64 jest to, że procesor jest nie tylko prosty, ale także bardzo prosty do zhackowania ze sprzętem. Kiedyś świetnie się bawiłem, grając z chipem muzycznym SID.
Więc - prawdopodobnie jest to cenne ćwiczenie, jeśli nie spędzasz na nim zbyt wiele czasu. Nauczyłem się asemblera 6502 jako mojego drugiego języka, kiedy miałem około 14 lat, zaraz po Commodore Basic. Ale przede wszystkim uzyskuje się ten bardzo prosty działający model, dzięki czemu można dodawać do niego bardziej wyrafinowane pomysły przy minimalnym nieporozumieniu.
Kilka przydatnych rzeczy, których możesz nauczyć się pracując w asemblerze ...
- Jak działają rejestry procesora.
- Jak działa adresowanie pamięci, w tym pośrednie.
- Jak działa stos procesora.
- Jak działa logika bitowa.
- Jak CPU kontroluje urządzenia I / O.
- Jak działają zakłócenia.
Jednym szczególnym powodem, dla którego polecam, jest lepsze zrozumienie sposobu, w jaki proste kroki działają całkowicie deterministycznie, mechanicznie i całkowicie bez inteligencji i zdrowego rozsądku. Zasadniczo przyzwyczajanie się do imperatywnego modelu wykonania w jego najczystszej i najbardziej upartej niewiedzy.
Dokładne pytanie, jak przydatna jest wiedza o większości tych rzeczy, jest jednak trudnym pytaniem.
Jednej rzeczy nie nauczysz się, jak dobrze grać z dziedzicznością pamięci. Te stare maszyny miały w większości prosty model pamięci bez warstw pamięci podręcznej i pamięci wirtualnej. Nie dowiesz się też wiele na temat współbieżności - były to z pewnością sposoby, aby sobie z tym poradzić, ale w większości oznaczały to przerwy. Nie musiałeś się martwić muteksami itp.
Czasami mentalny model tego, jak kiedyś działały te rzeczy lub jak działa asembler, może nawet wprowadzić w błąd. Na przykład myślenie o wskaźniku C jako adresie może prowadzić do nieokreślonych problemów z zachowaniem. Wskaźnik AC jest zwykle implementowany jako liczba całkowita zawierająca adres, ale nie ma gwarancji, że jest to absolutnie prawda. Na przykład na niektórych dziwnych platformach różne wskaźniki mogą wskazywać na różne przestrzenie adresowe. Staje się to ważne, gdy chcesz wykonać arytmetykę lub logikę bitową za pomocą dwóch wskaźników.
Jeśli nie masz jednej z tych dziwacznych platform, możesz nie myśleć, że ci na tym zależy - ale w dzisiejszych czasach kompilatory coraz częściej wykorzystują do optymalizacji zachowanie niezdefiniowane przez standardy.
Tak więc mentalny model architektury systemu może być przydatny, ale nadal ważne jest, aby kodować zgodnie ze specyfikacją języka, a nie hipotetycznym modelem, którego język i platforma mogą nie respektować.
Wreszcie, wiele przydatnych rzeczy z modelu mentalnego pochodzi z poznania, w jaki sposób kompilatory generują kod - a generowanie kodu dla współczesnych języków różni się bardzo od dość trywialnych kompilatorów dostępnych wówczas.
To moja ulubiona książka do tego ...
http://dickgrune.com/Books/MCD_1st_Edition/
Oprócz zagadnień związanych z analizowaniem składni, AST itp., Obejmuje generowanie kodu dla szeregu paradygmatów językowych - imperatywny, OOP, funkcjonalny, logiczny, równoległy i rozproszony - a także do zarządzania pamięcią. Jeśli chcesz wiedzieć, jak działają metody polimorficzne bez zagłębiania się w szczegóły zestawu instrukcji procesora, książka taka jak ta jest twoją przyjaciółką - wkrótce pojawi się nowe wydanie.