Для чего нужен ассемблер?
===========================

 Я не понимаю его назначение. Вроде драйверы пишут уже на Си. Микроконтроллеры тоже на Си. Он используется только для создания ОС , получается?( Или их тоже уже можно написать на других языках?)  
  

И следует ли его учить , если его уже заменяют? Так важно ли понимания того, что происходит на более глубоком, машинном уровне. 

 Скажем так: зачем уметь собирать-разбирать двигатель от машины и понимать как он работает?  

99% людей это не нужно в принципе. Но если вы это знаете, вы можете легко диагностировать какую-то проблему, понять как её решить. При этом, каждый день вы не производите двигатели на станке.  
  

То же самое с ассемблером: чтобы понимать как работает программа, как её отладить, диагностировать, понять, что не работает — для этого и нужен ассемблер. Писать на нём что-то конкретное и большое сейчас абсолютно бессмысленно. Его надо *знать* и *понимать*, этого достаточно. 

> Я не понимаю его назначение

Поймите одну простую вещь, абсолютно любая программа написанная на абсолютно любом языке программирования, в конечном итоге для выполнения будет преобразована в машинный код процессора. А представлением этого кода как раз и является ассемблер. 
> И следует ли его учить , если его уже заменяют? 

Его никто не заменяет, осмелюсь сказать он незаменим. Ассемблер обладает одним свойством, на нем оочень тяжело писать большие программы, даже используя макроассемблер. Представтье, что ассемблерной программе не нужна операционная система, ассемблер напрямую может взаимодействовать с устройствами, без драйверов (надо только написать протокол этого самого взаимодействия) Есть более удобные языки, например "С" или "С++". Решение об изучениии каждый принимает самостоятельно, в некоторых сферах ассемблер -незаменим. А в других - бесполезен и даже вреден. 

 Учить, как и проходить - однозначно не надо.  

Изучать - да, возможно. Хотя бы с точки зрения понимания работы процессора как такового. 

 А ещё знание ассемблера нужно, если вы хотите понять, как работает та или иная скомпилированная программа (и затем написать схожую по функциональности свою или модифицировать эту).  

В сфере информационной безопасности обязательно. Простой пример - в лаборатории Касперского вручную анализировать неизвестные вирусы. (если интересно, ЛК проводит курсы по этой теме и нанимает на стажировку) 

 К вашему сведению драйверы это часть ОС. Их как и всю ОС можно написать на СИ, можно на Assembler, а можно, например, на Pascal. Просто сейчас компьютеры настолько быстрые и имеют так много памяти, что оптимизация кода уходит на второй план. Хотя компиляторы современных языков программирования в плане оптимизации фору дадут большинству современных программистов.  

Но все таки в серьезных программах есть много так называемых"узких мест" как правило это связано с нехваткой быстродействия, реже нехваткой памяти, тут на помощь приходит ассемблер.  

Хотя чудику который говнокодит на PHP или JS этого не понять  
  

PS Язык программирования это инструмент, а не стихотворение его учить не надо, на нем надо писать программы 

 Программа правильно написана на ассемблере будет работать в несколько раз быстрее чем аналогичная программа написана на языку высокого уровня. Но если код программы на языке высокого уровня займет страницу, то на ассемблере 10-20 страниц. Так что если важна скорость и не боитесь написать с несколько десятков страниц кода пишите на ассемблере. 

> Для чего нужен ассемблер

  

Ещё пара ниш к уже перечисленным: разработка компиляторов и процессорных эмуляторов. 

 Что бы было понятнее, лет 20 назад Asm еще использовался для оптимизации приложения, т.е для более оптимальной приложения. С развитием фрэймворков, эта надобность отпала как таковая, т.к сейчас производительность железа намного больше чем 20 лет назад, а ресурсы этого железа используются в среднем процентов на 30( не учитываем игры и 3д графику), да и мало кто уже использует низкоуровневые функции(привет от int13h). Единственное где еще может использоваться так это в real-time OS, где критически важны доли-долей микро-нано-секунд. В повседневной жизни это не пригодится, конечно если Вы не ходите разговаривать с процессором на его родном языке. 

 чтобы понимать [дизассемблер](https://www.ozon.ru/context/detail/id/84242/) ...  
  

...ну или вирусок какой на заказ