У мене в роботі три-чотири програми асемблера (приблизно у 20 МБ джерела). Усі вони є SSE (2) і пов’язані з операціями над (досить великими - думаю 2400x2048 і більшими) зображеннями.
Для хобі я працюю над компілятором, а там у вас більше асемблера. Бібліотеки середовища виконання їх часто заповнені, більшість із них пов’язані з матеріалами, що не відповідають нормальному процедурному режиму (наприклад, помічники для винятків тощо)
У мене немає асемблера для мого мікроконтролера. Більшість сучасних мікроконтролерів мають настільки периферійне обладнання (контролери переривань, навіть цілі квадратурні кодери та послідовні будівельні блоки), що використання асемблера для оптимізації циклів часто більше не потрібно. При поточних цінах флеш-пам’яті те саме стосується і пам'яті коду. Крім того, часто існує ряд пристроїв, сумісних з висновками, тому збільшення масштабу, якщо у вас систематично закінчується потужність процесора або флеш-пам'яті, часто не є проблемою
Якщо ви дійсно не поставите 100000 пристроїв та асемблер програмування, це зможе по-справжньому значно заощадити, просто помістивши у флеш-чіп категорії меншої категорії. Але я не в цій категорії.
Багато людей вважають, що вбудований привід є виправданням для асемблера, але їх контролери мають більшу потужність процесора, ніж машини, на яких розроблявся Unix . (Мікрочіп постачається з мікроконтролерами 40 і 60 MIPS вартістю до 10 доларів США ).
Однак багато людей застрягли у спадщині, оскільки змінити архітектуру мікрочіпів непросто. Також код HLL дуже залежить від архітектури (оскільки він використовує апаратну периферію, регістри для управління введенням-виведенням тощо). Тому іноді є вагомі причини продовжувати підтримувати проект в асемблері (мені пощастило, що я мав змогу налаштувати справи на новій архітектурі з нуля). Але часто люди жартують, що асемблер їм дійсно потрібен.
Мені все ще подобається відповідь, яку професор дав, коли ми запитали, чи можемо ми використовувати GOTO (але ви можете прочитати це також як ASSEMBLER): "якщо ви вважаєте, що варто написати есе на 3 сторінки про те, навіщо вам потрібна ця функція, ви можете використовувати її Будь ласка, надішліть есе з результатами. "
Я використав це як керівний принцип для функцій низького рівня. Не будьте занадто тісними, щоб ним користуватися, але переконайтесь, що ви мотивуєте це правильно. Навіть підкиньте штучний бар’єр або два (як есе), щоб уникнути заплутаних міркувань як виправдання.