Hmm kweet niet wat voor soort assembler je wilt leren. Als het voor een Intel PC is dan lijkt me dat niet erg zinvol.
De software voor PC is behoorlijk goed uitgekiend, zeker voor die delen die je met ASM zou willen aanpakken.
Zelfs voor microcontrollers is de trend naar C. Het heeft te maken met de programmagrootte. Om 10kByte vol te krijgen in machinetaal moet je flink wat programmeren in assembler... En tegenwoordig is 64, of 256kB al heel normaal. Om dat te hanteren MOET je haast wel C gebruiken.
Assembler gebruik je vooral bij het aan elkaar knopen van hardware gewoon definieren welk draadje aan welke pen, de penfunctie instellen.
Ik hobby wat met AVR procesors van Atmel, ongeveer even populair zijn de PICs van Microchip. Dat is spul waarbij je leuk met assembler kan spelen en helemaal je eigen dingetjes kan maken.
Als je wilt weten wat het is: het kan gratis!
1.
http://www.atmel.com/dyn/products/tools.asp?family_id=607
Download AVRstudio 4. Die je moet tegenwoordig wel ff registreren voor de nieuwste versies: je moet daarbij kiezen om minimaal 1000 componenten binnen 1 jaar nodig denken te hebben... is geheel risicoloos, don't worry.
Dat is een complete omgeving om elke processor van Atmel mee te programmeren en te simuleren. Eigenlijk hoef je geen hardware te kopen!
Programmeren gaat òf met assembler (zit in AVRstudio geïntegreerd), òf met WinAVR (dat is GCC+AVRlibrary), GCC is de GNU C-compiler (die wordt bijna overal voor gebruikt: het is zo'n beetje DE standaard).
Maar....ook met C zal je wel in de details (instructieset+codes) van de processorfamilie moeten verdiepen.
2:
Bijvoorbeeld ATmega8515 is (was) heel populair. Dit handboek heb je dan nodig:
http://www.atmel.com/dyn/resources/prod_do...nts/doc2502.pdf
3:
En de instructieset AVR:
http://www.atmel.com/dyn/resources/prod_do...nts/doc0856.pdf
Advies: houdt je voorlopig even bij 1 groepssoort (b.v. ATmel AVR 8bit RISC). In die groep vindt je voor "elk" probleem Application Notes met voorbeelden.
Even voor de duidelijkheid: hoewel de trend naar C is meen ik zelf dat Assembler veel leerzamer is. Ik vrees dat je nooit zelf hardware aan elkaar leert knopen zonder ASM kennis. Maar C is zeker geschikt als je een kant en klaar bordje koopt (bv Arduino). Ik gebruik zelf enkel Assembler, gewoon omdat ik C veel te ingewikkeld vindt ivm met libraries, headers, compileropties. Je krijgt veel ballast te verhapstukken om een paar bytes te manipuleren...
Maar als je bijvoorbeeld een grafisch scherm voor een mobile telefoon wilt ontwikkelen, dat moet met C. Meetapparaatjes, tellertjes, instrumentjes, besturingkjes met een paar knopjes dat zou ik allemaal liever in assembler
doen. Een ingewikkeld programma uitvoeren op de PC en via de USB apparaatjes besturen of uitlezen. Dat buitenPC spul is heerlijk te doen met assembler!
Tenslotte nog een tip: als je "hot" stuf wilt kies dan een Xmega, wordt waarschijnlijk de komende jaren de top op 8bit gebied. Hij kan meer dan het huidige 8bit spul maar is dienovereenkomstig ingewikkelder (een pen krijgt steeds meer verschillende rollen om uit te kiezen). Maar als je er nu mee begint kan je die ervaring misschien nog goed te gelde maken ook. Wel denk ik dat je hier met C sneller resultaat uit haalt...