Язык ассемблера — язык программирования низкого уровня, мнемонические команды которого (за редким исключением) соответствуют инструкциям процессора вычислительной системы. Трансляция программы в исполняемый машинный код производится ассемблером (от англ. assembler — сборщик) — программой-транслятором, которая и дала языку ассемблера его название.
Для начала нужно определиться с типом микропроцессора который хотите использовать. Под процессоры обычно есть IDE в которые встраиваются компиляторы (такие приблуды которые переводят наши труды в машинный код) . Допустим для AVR (атмеги всякие) можно писать на C, VB и ассемблер. Но нужно помнить C и VB это не совсем те языки на которых пишут для больших компьютеров, но синтаксисом похожи.
В итоге если хочется понять как это все работает и помигать светодиодиком то достаточно С или VB они не такие замороченные как ассемблер, но в серьезном проекте можно столкнутся с проблемой нехватки памяти микрухи т. к. в микропроцессорах память не как в компьютере исчисляется в гигабайтах, а исчисляется байтах и обычно борются за каждый бит.