HTML Diff
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>