Ну ты уж сильно категоричен. Я вот щас проектирую прогу - управление тестомесильной машиной. Она дозирует разные ингредиенты с помощью разных методов - сыпучие шнеками, жидкие клапанами и счетчиками типа водяных, густые шприцом с лин. приводом, муку через весы, в процессе все это перемешивает, позволяет хранить несколько наборов-рецептур, управляется по ModBus с панели оператора. AVR Мега128. Я если честно щас подумываю, а не применить ли мне плюсы, бо очень хорошо дозирование разных компонентов описывается наследниками одного объекта
Но пожалуй все же обойдусь указателями на функции, а то и банальным case, потому как процессы медленные, спешить некуда, а жесткий код - он надежнее
Но представить себе, что я все это пишу на асме я не могу, потому как беспокоюсь за свое душевное здоровье
Кстати про case. Хороший пример, чем же
армяне лучше, чем грузины С лучше ASM. Если у нас есть задача - выполнить 5 разных кусков кода в зависимости от входного числа, то написать это можно по-разному. Если входные числа 1,2,3,4,5 - то естественно организовать таблицу переходов - взять число, прибавить адрес таблицы и перейти туда. Если же числа типа 7,25,34,35,80 - то выгоднее поставить 5 сравнений и условных переходов. Так вот, я вообще могу этих чисел не знать. У меня там константы поименованные стоят, MBF_READ_HOLDING_REGS, MBF_WRITE_SINGLE_HOLDING_REG и т.п. А константы эти - коды функций ModBus, и я сам выбираю, какие функции я поддержу, а какие нет. И если это будут 1,2,3,4,5,6 - компилятор нарисует таблицу. А когда я туда добавлю 16 и 23 - таблицу выкинет и сделает условные переходы, а я об этом и знать не буду, потому что мне это не надо, я сосредотачиваюсь на логике.
А вот когда мне нужен был преобразователь напряжение-частота на тиньке, я писал его на асме, потому что он и на асме пару экранов занимает. А если точнее - потому что тинька была из старых, без ОЗУ вообще, соответственно С под нее не было
И то, процедуру деления аккуратно спер из библиотеки gcc
На асме нужно писать вывод видеосигнала на ножку порта и программный USB
А все, что удобнее писать на С - нужно писать на С. Да, и проблема одного начинающего программиста, который запутался с signed и unsigned не в том, что он не знает асма, а в том, что он не знает С
Потому что с signed и unsigned он уже вроде разобрался, а остальное у него вполне возможно и так работает, а на асме он бы всерьез встрял скажем с тригонометрией и числами плавающей запятой. Ну и вообще, проблема у него в проге для ПК, а при совремнных мощностях настольных ПК писать под них на асме - ни малейшего смысла.