Ja ti predlazem C++, a ASM nauci osnove (znaci kako radi CPU, sta su racunari fon-nojmanovog tipa, registre, adresiranje, itd..)
Ako zelis da pises mikrokernel, onda uci ASM... a za ostalo C/C++ vladaju. Bilo da radis razvoj aplikacija, algoritama ili DSP development uvek je osnova C/C++ a ako ti nesto ne radi dovoljno brzo, uvek mozes to da "doteras" sa asemblerom (SIMD/SSE, MMX).
Moderni C/C++ kompajleri su dovoljno brzi za vecinu primena. A sa asemblerom gubis ono sto je najvaznije: portabilnost.