Ensamblador es demasiado complicado en las PCs, aunque si lo que te gusta es la electrónica, seguramente trabajarás muchísimo con ensambladores.
En lo que a PC y dispositivos que se conecten a ésta, siempre es muy recomendable saber C. C "envuelve" al ensamblador en un conjunto de funciones muy útiles, y el manejo de direcciones de memoria y la memoria misma te hará sentir como pez en el agua cuando trabajes con diferentes dispositivos. Con C puedes trabajar a un nivel muy cercano al hardware; pero si por azares del destino hubiese algo que no pudieras hacer, C te permite incrustar código ensamblador en diferentes partes de tu programa. C++ permite hacer prácticamente lo mismo que C, pero además te provee de mayor fuerza para hacer una abstracción de tus programas (no por nada, C++ sigue siendo EL lenguaje más empleado en el mundo, según el OMG).
Un buen libro -que con suerte te lo encuentras en PDF en Internet con Googolearlo, es "El lenguaje de programación C" de Ritchie y Kerniham, los creadores del lenguaje. De C++, "El lenguaje de programación C++ 3a Ed." de Bjarne Stroustrup (que difícilmente te lo encontrarás en Internet), el creador del lenguaje C++, es la mejor referencia de C++, aunque es muy recomendable que sepas de antemano C.
Saludos.