Hay varios libros de la editorial RAMA que tratan del tema. También puedes buscar en las páginas web de los fabricantes (Intel, AMD, Atmel, Dallas, Motorola, etc...). Yo particularmente aprendí con el databook de Intel. Es interesante que te busques algún compilador. Puedes escribir los programas en ensamblador o en alto nivel (hay compiladores de C y de Pascal, pero consumen mucha memoria, yo recomiendo programar en ensamblador).