Хочу все знати мову асемблера, geekbrains - навчальний портал для програмістів

Як ви вже знаєте, згідно з останніми світовими тенденціями. мова асемблера знову входить в 10-ку найпопулярніших мов програмування. Як так вийшло, що в світі, де більшість початківців розробників важко уявляє механізми взаємодії коду і машини, це первісне створення знову на увазі? І головне: чи треба вчити мову асемблера? І як? Спробуємо розібратися.

Хочу все знати мову асемблера, geekbrains - навчальний портал для програмістів

Коротка довідка

Мова асемблера - машинно-орієнтований код низького рівня, перша згадка про яке датована 40-ми роками 20-го століття в контексті взаємодії з комп'ютером EDSAC. Незважаючи на те, що він не завжди використовує внутрішні інструкції самих машин (все-таки мова йде про універсалізації), це практично не викликає втрати у швидкодії, навпаки лише надаючи користувачу можливості для використання макрокоманд.

В цьому і є головна принада: володіючи досить обмеженим набором команд і дій, мова асемблера є універсальним засобом, якщо ви хочете створити максимально швидко виконуваний код, а також покроково відстежити процеси, що виконуються машиною.

Виходячи з цього виділимо очевидні переваги:

Швидкодію. Швидше тільки використовувати безпосередні інструкції процесора;

Безпека. Низькорівневими в даному випадку практично виключає наявність білих плям в коді;

Ефективність використання можливостей конкретної платформи. Орієнтованість на використовувану машину дозволяє мати серйозну перевагу в порівнянні з високорівневими мовами;

Розуміння виконуваного коду програмістом. На такому рівні програмування код і дію мають очевидно причинно-наслідковий зв'язок.

Однак, нерозумно заперечувати, що у настільки старого мови є явні недоліки:

Важко вивчити. Спеціалізація на платформу, кілька діалектів - все це не сприяє швидкому вивченню і розумінню;

Написання програм. Деякі примітивні операції, що описуються в мовах високого рівня одним рядком, тут можуть викликати справжній головний біль у програміста;

Більшість використовуваних машин просто не потребує такому примітивному мовою, як асемблер;

Високий поріг входу. Уявити виконуваний код в мові асемблера зможе майже будь-який програміст середньої руки. Зробити це ефективніше компілятора - лише мала частина;

Сильно обмежена кількість бібліотек, спільнот, допоміжних ресурсів за сучасними мірками.

Кому вивчати?

Очевидно, що мова асемблера був хороший і затребуваний за часів не надто потужних комп'ютерів, але чому новий виток зростання з'явився зараз? Все просто: на світ величезною хвилею насувається IoT. Використання численних комп'ютерів, підлеглих одній меті, виправдовує себе тільки при загальній максимально низьку собівартість однієї і високій швидкодії, що змушує розробників звернеться до старого-доброго мови асемблера.

Таким чином, якщо вашої спеціалізацією є розробка мобільних додатків, то дана тенденція вас не стосується. Однак якщо ваш інструмент C, а на робочому столі завжди лежить мікроконтролер, то мова асемблера - то, що доктор прописав. В іншому випадку, шлях у професії буде коротким.

Хочу все знати мову асемблера, geekbrains - навчальний портал для програмістів

Programming from the Ground Up. Джонатан Бартлетт-друга книга по черзі для прочитання має більш суха мова викладу, зате рясніє корисними порадами та технічними даними;

Introduction to 64 Bit Assembly Language, Programming for Linux and OS X. Рей Сейфарт - в цій книзі мова асемблера розглядається, як базис для всіх систем і пристроїв. Новачкові така книга може здатися важкою для розуміння, тому рекомендується мати за плечима хоч якісь пізнання в програмуванні;

PC Assembly Language. Пол Картер - навчальна мови асемблера книга з величезною кількістю прикладів і конкретним їх застосуванням з реального життя;

Асемблер і дизасемблювання. Пирогов Владислав - повинна бути серед всього цього навчального пишноти і книга російською мовою. Приклади коду, опис інструментів і відповіді на актуальні питання новачків - все додається;

Асемблер? Це просто! Вчимося програмувати. Калашников Олег - книга другого ступеня пізнання мови асемблера. Те краще накласти інформацію, описану в ній, на ваші хоча б мінімальні вже отримані знання;

Асемблер на прикладах, Марек Рудольф - а ось ця книга, хоч і не російського виробництва (проте в оригіналі ви її теж навряд чи прочитаєте), ідеально підійде в якості базису. Все доступно і зрозуміло.

Схожі статті