Hallo,
nimm eine überschaubare Familie, deren Fallstricke sich in Grenzen
halten.
Ich würde z.B. die 8Bit-AVR-Reihe durchaus empfehlen.
Vorteile aus meiner Sicht: linearer Adressraum, kein Bankswitching.
Ports sind PushPull-Ausgänge oder eben Eingänge.
Die internen Komponenten sind überschaubar abgegrenzt.
Meine Meinung zu Assembler auf µC o.ä.: ich habe mit 6800 angefangen,
habe 6510/6502 und Z80 programmiert und bin jetzt beim AVR gelandet.
Alles nur Hobby, manchmal auch beruflich genutzte Einzelstücke.
Assembler heißt für mich, daß man die konkrete Hardware kennen muß, also
wissen muß, was eine CPU tatsächlich macht, was Peripherie wie Timer,
IO, ADC usw. machen. Egal, ob es einzelne Bausteine sind oder eben im
Chip gleich mit drin.
Wenn man das halbwegs auf die Reihe bekommt, ist auch ein Umstieg nicht
so schlimm. Das Problem ist ja weniger, die Mnemotik und Syntax zu
lernen, da mault ein guter Assembler schon genug.
Problem sit, zu verstehen, was die CPU und die Peripheriekomponenten
können, damit man nach den richtigen Befehlen sucht.
Dazu muß man eben erstmal wissen, welche Befehle ein µC überhaupt können
muß und das sond eigentlich sehr wenige.
Etwas Arithmetik (Subtraktion, Addition jeweils mit und ohne Übertrag),
wenige logische Verknüpfungen (AND, OR, EOR, NOT), Speicherzugriffe
(Laden und Speichern in meist mehreren Arten der Adressierung), bedingte
und unbedingte Sprungbefehle.
Damit bekommt man prinzipiell schon fast jede Aufgabe gelöst.
Das Prinzip "Interrupt" ist dann das nächste wichtige Kapitel.
Unterprogramme, Stackbenutzung, Multiplikationsbefehle usw. usw. sind
dann nur die Sahnehäubchen, damit man obiges auch praktisch hinbekommt
und es in den verfügbaren Speicher paßt. :)
Gruß aus Berlin
Michael