Ассемблер - это человекопонятная запись команд процессора, дополненная простейшими конструкциями, облегчающими жизнь разработчика. У каждой процессорной архитектуры свой набор команд и свой ассемблер. Но даже в пределах одной архитектуры полной совместимости нет: ассемблерный код, написанный для процессора Intel последнего поколения, может не запуститься на процессоре AMD (наборы команд у них всё же немного отличаются) или процессоре Intel, выпущенном 3 года назад (за это время в процессорах могли появиться новые команды). Писать вручную на ассемблере долго и сложно, но это позволяет задействовать все возможности железа. Впрочем, даже в самом лучшем случае это даст прирост всего в несколько процентов (современные компиляторы языков высокого уровня умеют оптимизировать ассемблерный код получше большинства программистов), а времени ты потратишь многократно больше, чем на написание того же кода на ЯВУ. P.S. Основы ассемблера знать необходимо: чтобы понимать, как именно будет выполняться твой код, написанный на ЯВУ, и видеть пути его оптимизации. Но писать на ассемблере не имеет смысла - за исключением редких особых случаев.