По-моему то, что программирование на асме требует знания аппаратной части целевой системы, а программирование на бэйсике - не требует (хотя есть embedded basic
), а на Си/Си++ - может требовать, а может не требовать, все это ИМХО - вопросы именно программирования. Ну какая разница, под Java-машину писать, под конкретный проц, или, к примеру, браузер (java-script, html и т.д.). Есть весьма навороченные ассемблеры с элементами ООП
кстати.
Вопросы железа - это как именно устроены регистры, на каких элементарных вентилях построено АЛУ, сколько тепла выделяется МП в режиме сна, какие напряжения питания и потребляемый ток у МП, сколько wait-stat'ов надо в конце концов, чтобы прошла команда записи во внешнюю EEPROM и т.п.
Хотя, конечно, чтобы написать что-то стоящее на асме, нужно хорошо знать аппаратную часть, точнее асм на каком-то уровне уже не отделим от железа (ассемблерные мнемоники->двоичные коды команд и данные->логические уровни->логические вентили->схемотехника логических вентилей). Но по-моему на этом форуме до такой глубины эту тематику не копают.