Una manera que me parece fantástica para empezar en Ensamblador es viendo el desensamblado de un programa.
Sin ir más lejos, el MemoryView de CheatEngine. Si haces el tutorial que trae CheatEngine, mirando en cada momento el ensamblador, te harás rápidamente al lenguaje. Además, CheatEngine explica las instrucciones brevemente.
Evidentemente, de eso a hacer un programa en ASM por ejemplo, aun hay un par de pasos.
No conozco libros ni tutoriales de ASM, pero vi esto por ahí:
http://comunidad.dragonjar.org/f177/tutorial-completo-de-lenguaje-ensamblador-8845/. No sé
cuán bueno es, pero bueno.
Si has programado C o C++, por ejemplo, te será más fácil hacerte a ASm, más que nada porque C es de bajo nivel y lo que haces en C lo puedes pasar "fácilmente" a ASM.
Luego, si te ayuda, escribí hace tiempo estas 2 entradas:
http://code0x66.blogspot.com.es/2014/03/introduccion-punteros.htmlhttp://code0x66.blogspot.com.es/2014/03/introduccion-ensamblador-asm.htmlLa primera es sobre punteros, tratados sobre Cheat Engine, C++ y algo en ASM. Si ya controlas de punteros, te lo puedes saltar xD
Te la pongo porque ASM es muy simple, pero trabaja directamente con memoria y los punteros son importantes.