@onMymind

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

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

И следует ли его учить , если его уже заменяют? Так важно ли понимания того, что происходит на более глубоком, машинном уровне.
  • Вопрос задан
  • 19844 просмотра
Пригласить эксперта
Ответы на вопрос 9
TrueBers
@TrueBers
Гуглю за еду
Скажем так: зачем уметь собирать-разбирать двигатель от машины и понимать как он работает?
99% людей это не нужно в принципе. Но если вы это знаете, вы можете легко диагностировать какую-то проблему, понять как её решить. При этом, каждый день вы не производите двигатели на станке.

То же самое с ассемблером: чтобы понимать как работает программа, как её отладить, диагностировать, понять, что не работает — для этого и нужен ассемблер. Писать на нём что-то конкретное и большое сейчас абсолютно бессмысленно. Его надо знать и понимать, этого достаточно.
Ответ написан
Комментировать
Daemon23RUS
@Daemon23RUS
Я не понимаю его назначение
Поймите одну простую вещь, абсолютно любая программа написанная на абсолютно любом языке программирования, в конечном итоге для выполнения будет преобразована в машинный код процессора. А представлением этого кода как раз и является ассемблер.
И следует ли его учить , если его уже заменяют?
Его никто не заменяет, осмелюсь сказать он незаменим. Ассемблер обладает одним свойством, на нем оочень тяжело писать большие программы, даже используя макроассемблер. Представтье, что ассемблерной программе не нужна операционная система, ассемблер напрямую может взаимодействовать с устройствами, без драйверов (надо только написать протокол этого самого взаимодействия) Есть более удобные языки, например "С" или "С++". Решение об изучениии каждый принимает самостоятельно, в некоторых сферах ассемблер -незаменим. А в других - бесполезен и даже вреден.
Ответ написан
Комментировать
@d-stream
Готовые решения - не подаю, но...
Учить, как и проходить - однозначно не надо.
Изучать - да, возможно. Хотя бы с точки зрения понимания работы процессора как такового.
Ответ написан
Комментировать
15432
@15432
Системный программист ^_^
А ещё знание ассемблера нужно, если вы хотите понять, как работает та или иная скомпилированная программа (и затем написать схожую по функциональности свою или модифицировать эту).
В сфере информационной безопасности обязательно. Простой пример - в лаборатории Касперского вручную анализировать неизвестные вирусы. (если интересно, ЛК проводит курсы по этой теме и нанимает на стажировку)
Ответ написан
Комментировать
@evgeniy_lm
К вашему сведению драйверы это часть ОС. Их как и всю ОС можно написать на СИ, можно на Assembler, а можно, например, на Pascal. Просто сейчас компьютеры настолько быстрые и имеют так много памяти, что оптимизация кода уходит на второй план. Хотя компиляторы современных языков программирования в плане оптимизации фору дадут большинству современных программистов.
Но все таки в серьезных программах есть много так называемых"узких мест" как правило это связано с нехваткой быстродействия, реже нехваткой памяти, тут на помощь приходит ассемблер.
Хотя чудику который говнокодит на PHP или JS этого не понять

PS Язык программирования это инструмент, а не стихотворение его учить не надо, на нем надо писать программы
Ответ написан
Kolyagrozamorey
@Kolyagrozamorey
инженер-электроник службы ИТ ХАЕС
Программа правильно написана на ассемблере будет работать в несколько раз быстрее чем аналогичная программа написана на языку высокого уровня. Но если код программы на языке высокого уровня займет страницу, то на ассемблере 10-20 страниц. Так что если важна скорость и не боитесь написать с несколько десятков страниц кода пишите на ассемблере.
Ответ написан
Комментировать
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Для чего нужен ассемблер

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

...ну или вирусок какой на заказ
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы