0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>26 авг 2021</li>
2
<ul><li>26 авг 2021</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Жизнь слишком коротка, чтобы кодить на ассемблере. И всё же в некоторых задачах он до сих пор незаменим.</p>
4
</ul><p>Жизнь слишком коротка, чтобы кодить на ассемблере. И всё же в некоторых задачах он до сих пор незаменим.</p>
5
<p>National Cancer Institute / Unsplash</p>
5
<p>National Cancer Institute / Unsplash</p>
6
<p>Журналист, коммерческий автор и редактор. Пишет про IT, цифровой маркетинг и бизнес. Сайт:<a>darovska.com</a>.</p>
6
<p>Журналист, коммерческий автор и редактор. Пишет про IT, цифровой маркетинг и бизнес. Сайт:<a>darovska.com</a>.</p>
7
<p>В этом году ассемблер ворвался в топ-10 языков программирования по версии TIOBE, а значит, старичка ещё рано отправлять на пенсию. Мы пообщались с разработчиками, которые пишут код на ассемблере, а ещё изучили мнения зарубежных девелоперов на <a>Quora</a>и <a>Stack Overflow</a>.</p>
7
<p>В этом году ассемблер ворвался в топ-10 языков программирования по версии TIOBE, а значит, старичка ещё рано отправлять на пенсию. Мы пообщались с разработчиками, которые пишут код на ассемблере, а ещё изучили мнения зарубежных девелоперов на <a>Quora</a>и <a>Stack Overflow</a>.</p>
8
<p>Сегодня ассемблер используют как минимум в четырёх направлениях.</p>
8
<p>Сегодня ассемблер используют как минимум в четырёх направлениях.</p>
9
<p><strong>Операционные системы и компиляторы.</strong>Современные операционные системы, например дистрибутивы Linux, пишут на C/C++, но там есть фрагменты на ассемблере. Некоторые фрагменты g++ и компиляторы для BASIC и Fortran тоже написаны на машинно-ориентированном языке.</p>
9
<p><strong>Операционные системы и компиляторы.</strong>Современные операционные системы, например дистрибутивы Linux, пишут на C/C++, но там есть фрагменты на ассемблере. Некоторые фрагменты g++ и компиляторы для BASIC и Fortran тоже написаны на машинно-ориентированном языке.</p>
10
<p><strong>Встроенные системы и драйверы.</strong>На ассемблере пишут драйверы под Windows для архитектуры процессоров x86 и программы для AVR-микроконтроллеров и Arduino.</p>
10
<p><strong>Встроенные системы и драйверы.</strong>На ассемблере пишут драйверы под Windows для архитектуры процессоров x86 и программы для AVR-микроконтроллеров и Arduino.</p>
11
<p><strong>Кибербезопасность и хакинг.</strong>С помощью ассемблера хакеры взламывают ПО, а разработчики пишут на нём защиту от взлома. Иногда встречаются и вирусы на ассемблере. Их тяжелее обнаружить, и они куда эффективнее высокоуровневых.</p>
11
<p><strong>Кибербезопасность и хакинг.</strong>С помощью ассемблера хакеры взламывают ПО, а разработчики пишут на нём защиту от взлома. Иногда встречаются и вирусы на ассемблере. Их тяжелее обнаружить, и они куда эффективнее высокоуровневых.</p>
12
<p><strong>Виртуальные машины / эмуляторы.</strong>Виртуальные машины тесно взаимодействуют с ОС, поэтому частично написаны на ассемблере. Как, например, LLVM или Surface Duo Emulator.</p>
12
<p><strong>Виртуальные машины / эмуляторы.</strong>Виртуальные машины тесно взаимодействуют с ОС, поэтому частично написаны на ассемблере. Как, например, LLVM или Surface Duo Emulator.</p>
13
<p>Есть мнение, что худо-бедно знать ассемблер нужно всем разработчикам. Он помогает отлаживать программы, когда обычные способы не работают, исправлять ошибки в стандартной библиотеке или функциях ОС. Разработчику проще оптимизировать код, если он понимает, как процессор обрабатывает инструкции.</p>
13
<p>Есть мнение, что худо-бедно знать ассемблер нужно всем разработчикам. Он помогает отлаживать программы, когда обычные способы не работают, исправлять ошибки в стандартной библиотеке или функциях ОС. Разработчику проще оптимизировать код, если он понимает, как процессор обрабатывает инструкции.</p>
14
Кадр: мультсериал "Губка Боб Квадратные Штаны"<p>"Считается, что веб-разработчику ассемблер знать ни к чему. Правда, потом страница с текстом потребляет 100% ресурсов процессора и 2 гигабайта ОЗУ. Если честно, всем, кто пишет прикладные программы, полезно знать, как работает компьютер. Хочется, чтобы все эти люди думали не в стиле "запустилось на моём сверхсовременном компе, и ладно“, а хоть немного пытались оптимизировать свои поделки и уж тем более не использовали всякие извращения вроде Electron".</p>
14
Кадр: мультсериал "Губка Боб Квадратные Штаны"<p>"Считается, что веб-разработчику ассемблер знать ни к чему. Правда, потом страница с текстом потребляет 100% ресурсов процессора и 2 гигабайта ОЗУ. Если честно, всем, кто пишет прикладные программы, полезно знать, как работает компьютер. Хочется, чтобы все эти люди думали не в стиле "запустилось на моём сверхсовременном компе, и ладно“, а хоть немного пытались оптимизировать свои поделки и уж тем более не использовали всякие извращения вроде Electron".</p>
15
<p><strong>Юрий Иваник</strong>, администратор Telegram-чата про ассемблер<a>pro.asm</a></p>
15
<p><strong>Юрий Иваник</strong>, администратор Telegram-чата про ассемблер<a>pro.asm</a></p>
16
<p>Ассемблеры - это целая группа машинно-ориентированных языков программирования. Набор команд (ISA) и архитектура конкретного ассемблера зависит от типа процессора. Поэтому для разных процессоров команды тоже будут разными - единого стандарта языка не существует.</p>
16
<p>Ассемблеры - это целая группа машинно-ориентированных языков программирования. Набор команд (ISA) и архитектура конкретного ассемблера зависит от типа процессора. Поэтому для разных процессоров команды тоже будут разными - единого стандарта языка не существует.</p>
17
<p>"Ассемблер - это лёгкая мнемоническая обёртка для машинных команд процессора, в которой человеку их легче понять и запомнить. Чтобы писать на ассемблере, нужно понимать архитектуру процессора, набор его команд и адресные пространства. Сейчас ассемблер используют в основном разработчики микроконтроллеров, драйверов и чипов - в общем, те, кто непосредственно работает с железом".</p>
17
<p>"Ассемблер - это лёгкая мнемоническая обёртка для машинных команд процессора, в которой человеку их легче понять и запомнить. Чтобы писать на ассемблере, нужно понимать архитектуру процессора, набор его команд и адресные пространства. Сейчас ассемблер используют в основном разработчики микроконтроллеров, драйверов и чипов - в общем, те, кто непосредственно работает с железом".</p>
18
<p><a><strong>Басист Аксель</strong></a>, team lead, full stack ASP .NET. Комментарий для Skillbox Media</p>
18
<p><a><strong>Басист Аксель</strong></a>, team lead, full stack ASP .NET. Комментарий для Skillbox Media</p>
19
<p>"Иногда ассемблер называют машинным языком, но это не совсем корректно. Машинный язык - это нули и единицы, понятные процессору. А программа на ассемблере проходит фазу компиляции - преобразования кода, понятного человеку, в набор байтов, понятный процессору.</p>
19
<p>"Иногда ассемблер называют машинным языком, но это не совсем корректно. Машинный язык - это нули и единицы, понятные процессору. А программа на ассемблере проходит фазу компиляции - преобразования кода, понятного человеку, в набор байтов, понятный процессору.</p>
20
<p>Ассемблер используют там, где важен каждый такт работы исполнительного ядра, высокая производительность или ресурсы крайне ограничены. На языке ассемблера можно писать программы, драйвера, да хоть саму ОС! И такая даже есть -<a>KolibriOS</a>".</p>
20
<p>Ассемблер используют там, где важен каждый такт работы исполнительного ядра, высокая производительность или ресурсы крайне ограничены. На языке ассемблера можно писать программы, драйвера, да хоть саму ОС! И такая даже есть -<a>KolibriOS</a>".</p>
21
<p><strong>Юрий Иваник</strong>, администратор Telegram-чата про ассемблер<a>pro.asm</a>. Комментарий для Skillbox Media</p>
21
<p><strong>Юрий Иваник</strong>, администратор Telegram-чата про ассемблер<a>pro.asm</a>. Комментарий для Skillbox Media</p>
22
<p>"На ассемблере, например, пишут код начальной загрузки компьютера, который запускается перед средой выполнения языка более высокого уровня".</p>
22
<p>"На ассемблере, например, пишут код начальной загрузки компьютера, который запускается перед средой выполнения языка более высокого уровня".</p>
23
<p><a><strong>Лоуренс Стюарт</strong></a>, технический директор Serissa Research</p>
23
<p><a><strong>Лоуренс Стюарт</strong></a>, технический директор Serissa Research</p>
24
<p>"Ассемблер незаменим для загрузчиков, демосцен (маленькие демки - интро до 512 байт, как правило), оптимизации кода. В ситуациях, когда крайне важна производительность и мало памяти для кода".</p>
24
<p>"Ассемблер незаменим для загрузчиков, демосцен (маленькие демки - интро до 512 байт, как правило), оптимизации кода. В ситуациях, когда крайне важна производительность и мало памяти для кода".</p>
25
<p><a><strong>Евгений Красников</strong></a>, участник<a>pro.asm</a>. Комментарий для Skillbox Media</p>
25
<p><a><strong>Евгений Красников</strong></a>, участник<a>pro.asm</a>. Комментарий для Skillbox Media</p>
26
<p>"Встроенные системы" - это микрокомпьютеры, которые решают определённые задачи. Они встречаются в автомобилях, телевизорах, цифровых камерах, IoT-устройствах и мобильных телефонах. Для встроенных систем исторически<a>использовали</a>именно ассемблер.</p>
26
<p>"Встроенные системы" - это микрокомпьютеры, которые решают определённые задачи. Они встречаются в автомобилях, телевизорах, цифровых камерах, IoT-устройствах и мобильных телефонах. Для встроенных систем исторически<a>использовали</a>именно ассемблер.</p>
27
<p>"Когда компиляторы и языки программирования были относительно примитивными, многие программы и даже операционные системы полностью писали на ассемблере. На машинном языке почти не кодили, а Fortran и COBOL плоховато подходили для встроенных систем.</p>
27
<p>"Когда компиляторы и языки программирования были относительно примитивными, многие программы и даже операционные системы полностью писали на ассемблере. На машинном языке почти не кодили, а Fortran и COBOL плоховато подходили для встроенных систем.</p>
28
<p>Кросс-ассемблеры и кросс-компиляторы встречались редко - последние работали на мэйнфреймах и с дискет. Поставщики микропроцессоров или микроконтроллеров редко писали хорошие компиляторы, потому что не разбирались в программном обеспечении".</p>
28
<p>Кросс-ассемблеры и кросс-компиляторы встречались редко - последние работали на мэйнфреймах и с дискет. Поставщики микропроцессоров или микроконтроллеров редко писали хорошие компиляторы, потому что не разбирались в программном обеспечении".</p>
29
<p><a><strong>Билл Вестфилд</strong></a>, разработчик</p>
29
<p><a><strong>Билл Вестфилд</strong></a>, разработчик</p>
30
<p>"Несколько лет назад я был разработчиком в компании, которая устанавливала видеодомофоны. Мы закупили гигантскую партию домофонов в Китае, а к ним прилагалось ПО, написанное на С++, документация - всё как положено.</p>
30
<p>"Несколько лет назад я был разработчиком в компании, которая устанавливала видеодомофоны. Мы закупили гигантскую партию домофонов в Китае, а к ним прилагалось ПО, написанное на С++, документация - всё как положено.</p>
31
<p>На внутренних тестах выяснилось, что аппаратура страшно тормозит, и клиенты, очевидно, будут недовольны. А так как я был опытным разработчиком, мне поставили задачу ускорить работу системы. Классическая история, когда ошибку менеджеров и руководителей пытаются заткнуть техническими специалистами.</p>
31
<p>На внутренних тестах выяснилось, что аппаратура страшно тормозит, и клиенты, очевидно, будут недовольны. А так как я был опытным разработчиком, мне поставили задачу ускорить работу системы. Классическая история, когда ошибку менеджеров и руководителей пытаются заткнуть техническими специалистами.</p>
32
<p>При анализе оборудования мы выяснили, что оно построено на микроконтроллерах с открытой архитектурой, у которых есть очень толковая документация, а вот ПО для них написали китайцы - причём чуть ли не перед отправкой к нам.</p>
32
<p>При анализе оборудования мы выяснили, что оно построено на микроконтроллерах с открытой архитектурой, у которых есть очень толковая документация, а вот ПО для них написали китайцы - причём чуть ли не перед отправкой к нам.</p>
33
<p>В итоге оно получилось страшно сырым и держалось на стандартных функциях из библиотек, написанных сообществом любителей этих микроконтроллеров. Я вооружился документацией и переписал кучу этих низкоуровневых функций на ассемблере. Это заметно повысило скорость работы - в некоторых случаях до 15 раз.</p>
33
<p>В итоге оно получилось страшно сырым и держалось на стандартных функциях из библиотек, написанных сообществом любителей этих микроконтроллеров. Я вооружился документацией и переписал кучу этих низкоуровневых функций на ассемблере. Это заметно повысило скорость работы - в некоторых случаях до 15 раз.</p>
34
<p>После этого было ещё несколько подобных задач. К программированию на ассемблере мы в основном обращались, когда нужно было "пошаманить" со скоростью выполнения низкоуровневых запросов к железу. Кстати, забавная история: спустя некоторое время я обнаружил в китайских драйверах к экшн-камере кусок своего кода на ассемблере!"</p>
34
<p>После этого было ещё несколько подобных задач. К программированию на ассемблере мы в основном обращались, когда нужно было "пошаманить" со скоростью выполнения низкоуровневых запросов к железу. Кстати, забавная история: спустя некоторое время я обнаружил в китайских драйверах к экшн-камере кусок своего кода на ассемблере!"</p>
35
<p><strong>Василий Сысоев</strong>, ведущий разработчик ООО "Встроенные системы". Комментарий для Skillbox Media</p>
35
<p><strong>Василий Сысоев</strong>, ведущий разработчик ООО "Встроенные системы". Комментарий для Skillbox Media</p>
36
<p>Со временем микроконтроллеры и процессоры стали быстрее и умнее, поэтому всё больше популярности набирали языки высокого уровня.</p>
36
<p>Со временем микроконтроллеры и процессоры стали быстрее и умнее, поэтому всё больше популярности набирали языки высокого уровня.</p>
37
<p>"Ассемблер до сих пор используют во встроенных системах, когда ресурсов мало или нужна жёсткая оптимизация. Но чаще всего код для встраиваемых систем пишут на С".</p>
37
<p>"Ассемблер до сих пор используют во встроенных системах, когда ресурсов мало или нужна жёсткая оптимизация. Но чаще всего код для встраиваемых систем пишут на С".</p>
38
<p><a><strong>Евгений Красников</strong></a>, участник сообщества<a>pro.asm</a>. Комментарий для Skillbox Media</p>
38
<p><a><strong>Евгений Красников</strong></a>, участник сообщества<a>pro.asm</a>. Комментарий для Skillbox Media</p>
39
<p>"Некоторые важные части микропрограмм для смарт-карт написаны на ассемблере - это помогает защитить программное обеспечение от атак. Ассемблер - единственный язык, на котором вы полностью контролируете двоичный код программы. Это важно, ведь компилятор может оставить "дыру“ в прошивке, через которую злоумышленник взломает аппаратуру".</p>
39
<p>"Некоторые важные части микропрограмм для смарт-карт написаны на ассемблере - это помогает защитить программное обеспечение от атак. Ассемблер - единственный язык, на котором вы полностью контролируете двоичный код программы. Это важно, ведь компилятор может оставить "дыру“ в прошивке, через которую злоумышленник взломает аппаратуру".</p>
40
<p><a><strong>Кристиан Саковски</strong></a>, software engineer</p>
40
<p><a><strong>Кристиан Саковски</strong></a>, software engineer</p>
41
<p>Сейчас встраиваемые системы чаще всего программируют на C - это стандарт. Также популярность набирает C++. А на ассемблере в основном пишут специфические программы, например для цифровой обработки сигналов, или когда высокоуровневые языки уже не справляются:</p>
41
<p>Сейчас встраиваемые системы чаще всего программируют на C - это стандарт. Также популярность набирает C++. А на ассемблере в основном пишут специфические программы, например для цифровой обработки сигналов, или когда высокоуровневые языки уже не справляются:</p>
42
<ul><li>не хватает возможностей стандартных библиотек;</li>
42
<ul><li>не хватает возможностей стандартных библиотек;</li>
43
<li>компиляторы не поддерживают нужные функции;</li>
43
<li>компиляторы не поддерживают нужные функции;</li>
44
<li>объектный код генерируется некорректно;</li>
44
<li>объектный код генерируется некорректно;</li>
45
<li>нужно написать чувствительный к стеку код - например, при программировании драйверов и операционных систем, чтобы работать со специальными регистрами и командами.</li>
45
<li>нужно написать чувствительный к стеку код - например, при программировании драйверов и операционных систем, чтобы работать со специальными регистрами и командами.</li>
46
</ul><p>Но даже в этих случаях основную часть программы пишут на C или C++, а код ассемблера встраивают с помощью механизма asm. С другой стороны, в некоторых системах код на С работает слишком медленно и переписать его на ассемблере может быть вполне практичным решением.</p>
46
</ul><p>Но даже в этих случаях основную часть программы пишут на C или C++, а код ассемблера встраивают с помощью механизма asm. С другой стороны, в некоторых системах код на С работает слишком медленно и переписать его на ассемблере может быть вполне практичным решением.</p>
47
<p>"Пока в России не запретили квадрокоптеры, я собирал многовинтовые летательные аппараты. Мне пришлось с нуля писать софт на ассемблере для управления периферическим оборудованием. Оно подключается к основному контроллеру коптера. Аналогов не было - они появились позже, у производителей беспилотников типа DJI.</p>
47
<p>"Пока в России не запретили квадрокоптеры, я собирал многовинтовые летательные аппараты. Мне пришлось с нуля писать софт на ассемблере для управления периферическим оборудованием. Оно подключается к основному контроллеру коптера. Аналогов не было - они появились позже, у производителей беспилотников типа DJI.</p>
48
<p>Сначала я писал весь софт на С, но код работал медленно и непредсказуемо. Тогда решил программировать на ассемблере. В общем, сейчас на ассемблере пишут ПО для встроенных систем, носимой электроники, драйверов устройств - когда нужно обеспечить идеальную точность и скорость работы с микропроцессором. Микропроцессоры "думают“ на языке, очень похожем на ассемблер".</p>
48
<p>Сначала я писал весь софт на С, но код работал медленно и непредсказуемо. Тогда решил программировать на ассемблере. В общем, сейчас на ассемблере пишут ПО для встроенных систем, носимой электроники, драйверов устройств - когда нужно обеспечить идеальную точность и скорость работы с микропроцессором. Микропроцессоры "думают“ на языке, очень похожем на ассемблер".</p>
49
<p><strong>Василий Сысоев</strong>, ведущий разработчик в ООО "Встроенные системы"</p>
49
<p><strong>Василий Сысоев</strong>, ведущий разработчик в ООО "Встроенные системы"</p>
50
<p>"Есть несколько случаев, когда оптимизированный вручную язык ассемблера будет эффективнее языка ассемблера, сгенерированного компилятором из исходного кода C. Да и разработчику, привыкшему к ассемблеру, некоторые вещи проще написать на нём. В этих случаях многие компиляторы C допускают встроенную сборку.</p>
50
<p>"Есть несколько случаев, когда оптимизированный вручную язык ассемблера будет эффективнее языка ассемблера, сгенерированного компилятором из исходного кода C. Да и разработчику, привыкшему к ассемблеру, некоторые вещи проще написать на нём. В этих случаях многие компиляторы C допускают встроенную сборку.</p>
51
<p>Но компиляторы C становятся всё лучше, так что ручная оптимизация почти не нужна. А ещё большинство платформ налагает ограничения на некоторые низкоуровневые программы".</p>
51
<p>Но компиляторы C становятся всё лучше, так что ручная оптимизация почти не нужна. А ещё большинство платформ налагает ограничения на некоторые низкоуровневые программы".</p>
52
<p><a><strong>Сева Алексеев</strong></a>, пишет на С с 1993 года</p>
52
<p><a><strong>Сева Алексеев</strong></a>, пишет на С с 1993 года</p>
53
<p>"Сейчас на ассемблере пишут специфичные команды процессора, которые не поддерживаются языком C. Но это уже редкость".</p>
53
<p>"Сейчас на ассемблере пишут специфичные команды процессора, которые не поддерживаются языком C. Но это уже редкость".</p>
54
<p><a><strong>Алан Меллор</strong></a>, бывший старший разработчик на С в Siemens</p>
54
<p><a><strong>Алан Меллор</strong></a>, бывший старший разработчик на С в Siemens</p>
55
<p>Больше всего затрат уходит на проектирование платы и разработку программного обеспечения. С мощным железом не нужно экономить на памяти и скорости работы программ.</p>
55
<p>Больше всего затрат уходит на проектирование платы и разработку программного обеспечения. С мощным железом не нужно экономить на памяти и скорости работы программ.</p>
56
<p>"Чем проще разработать и поддерживать ПО, тем лучше, поэтому на ассемблере с нуля пишут всё реже - в наши дни большинство использует C/C ++ или даже Python. Выигрыш от ассемблера обычно невелик - есть инструменты получше, если вы разрабатываете на языке более высокого уровня.</p>
56
<p>"Чем проще разработать и поддерживать ПО, тем лучше, поэтому на ассемблере с нуля пишут всё реже - в наши дни большинство использует C/C ++ или даже Python. Выигрыш от ассемблера обычно невелик - есть инструменты получше, если вы разрабатываете на языке более высокого уровня.</p>
57
<p>Вообще, ассемблер нужен довольно редко. Разве что для низкоуровневых процедур установки, базового начального загрузчика и доступа к низкоуровневому оборудованию".</p>
57
<p>Вообще, ассемблер нужен довольно редко. Разве что для низкоуровневых процедур установки, базового начального загрузчика и доступа к низкоуровневому оборудованию".</p>
58
<p> <a><strong>Арно Бревоорт</strong></a>, разработчик</p>
58
<p> <a><strong>Арно Бревоорт</strong></a>, разработчик</p>
59
<p>"Сейчас экономия памяти, особенно дисковой, уже не так актуальна, да и скорости процессоров для выполнения повседневных задач вполне хватает. А современные компиляторы зачастую оптимизируют код по скорости даже лучше человека. Поэтому острой необходимости в языке ассемблера уже нет".</p>
59
<p>"Сейчас экономия памяти, особенно дисковой, уже не так актуальна, да и скорости процессоров для выполнения повседневных задач вполне хватает. А современные компиляторы зачастую оптимизируют код по скорости даже лучше человека. Поэтому острой необходимости в языке ассемблера уже нет".</p>
60
<p><a><strong>Евгений Красников</strong></a>, участник сообщества<a>pro.asm</a>. Комментарий для Skillbox Media</p>
60
<p><a><strong>Евгений Красников</strong></a>, участник сообщества<a>pro.asm</a>. Комментарий для Skillbox Media</p>
61
<p>"Ассемблер активно вытесняется другими языками, потому что программы на них проще писать, поддерживать, структурировать и понимать. Ассемблер оставляют в частях, где нужна чёткая последовательность действий, или когда работают напрямую с железом. Например, инициализируют микроконтроллер".</p>
61
<p>"Ассемблер активно вытесняется другими языками, потому что программы на них проще писать, поддерживать, структурировать и понимать. Ассемблер оставляют в частях, где нужна чёткая последовательность действий, или когда работают напрямую с железом. Например, инициализируют микроконтроллер".</p>
62
<p><strong>@smth_new_stalker</strong>, участник сообщества<a>pro.asm</a>. Комментарий для Skillbox Media</p>
62
<p><strong>@smth_new_stalker</strong>, участник сообщества<a>pro.asm</a>. Комментарий для Skillbox Media</p>
63
<p>Процессор не выполняет напрямую код на языках высокого уровня. Например, инструкции на интерпретируемых языках вроде<a>Python</a>сначала преобразуются в байт-код. А в некоторых компиляторах С/С++ команды сначала переводятся на язык ассемблера, а уже потом в машинный код объектного файла.</p>
63
<p>Процессор не выполняет напрямую код на языках высокого уровня. Например, инструкции на интерпретируемых языках вроде<a>Python</a>сначала преобразуются в байт-код. А в некоторых компиляторах С/С++ команды сначала переводятся на язык ассемблера, а уже потом в машинный код объектного файла.</p>
64
<p>И хотя в большинстве компиляторов уже нет промежуточного перевода, ассемблер часто выступает промежуточным звеном между человеко-ориентированным и машинным языком.</p>
64
<p>И хотя в большинстве компиляторов уже нет промежуточного перевода, ассемблер часто выступает промежуточным звеном между человеко-ориентированным и машинным языком.</p>
65
<p>"Нужен ли ассемблер всем разработчикам и программистам? Нет, но знание машинного языка по крайней мере одного процессора CISC, например Intel x86, и одного процессора RISC, желательно семейства ARM, даст вам хорошее представление о том, на что способен и не способен процессор".</p>
65
<p>"Нужен ли ассемблер всем разработчикам и программистам? Нет, но знание машинного языка по крайней мере одного процессора CISC, например Intel x86, и одного процессора RISC, желательно семейства ARM, даст вам хорошее представление о том, на что способен и не способен процессор".</p>
66
<p><a><strong>Стэнли Уайлмен - младший</strong></a>, профессор CS College</p>
66
<p><a><strong>Стэнли Уайлмен - младший</strong></a>, профессор CS College</p>
67
<p>Однако с ростом IoT-устройств, умных камер, видеорегистраторов и других систем популярность ассемблера снова выросла. Так что, если разбираетесь в электронике и железе, учите ассемблер - без хлеба не останетесь.</p>
67
<p>Однако с ростом IoT-устройств, умных камер, видеорегистраторов и других систем популярность ассемблера снова выросла. Так что, если разбираетесь в электронике и железе, учите ассемблер - без хлеба не останетесь.</p>
68
А кто это у нас на девятом месте по версии TIOBE? Скриншот: сайт TIOBE<p>На самом деле ассемблер - это низкоуровневые двоичные инструкции, которые программисты пишут словами и символами.</p>
68
А кто это у нас на девятом месте по версии TIOBE? Скриншот: сайт TIOBE<p>На самом деле ассемблер - это низкоуровневые двоичные инструкции, которые программисты пишут словами и символами.</p>
69
<p>"Ассемблер помогает понять внутреннюю кухню, что "под капотом“ у программы: работа систем, процессоров, памяти и прочее. Для программиста на Python или JavaScript, правда, это не так важно, как, скажем, для того, кто пишет на C/C++. Причём даже программисту на C/C++ это нужно не на начальном этапе изучения языка".</p>
69
<p>"Ассемблер помогает понять внутреннюю кухню, что "под капотом“ у программы: работа систем, процессоров, памяти и прочее. Для программиста на Python или JavaScript, правда, это не так важно, как, скажем, для того, кто пишет на C/C++. Причём даже программисту на C/C++ это нужно не на начальном этапе изучения языка".</p>
70
<p><a><strong>Евгений Красников</strong></a>, участник сообщества<a>pro.asm</a>. Комментарий для Skillbox Media</p>
70
<p><a><strong>Евгений Красников</strong></a>, участник сообщества<a>pro.asm</a>. Комментарий для Skillbox Media</p>
71
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
71
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>