Krik99 писал(а):Самого асм заинтересовал, хотя Си знаю и он мне больше по душе, но как говорят некоторые, асм не знать - позор. Предлагаю создать таблицу с основными структурами на Си типа: while, if, for, и т. д. и их аналогам на асм'е. Думаю многим поможе Си прогерам освоить ещё и асм
Нет таких аналогов. Есть последовательности асмовских команд, которые реализуют аналогичную функциональность, но эти последовательности не фиксированы: зависит от фантазии программиста, от стоящих перед ним задач и т.п.
SII писал(а):Нет таких аналогов. Есть последовательности асмовских команд, которые реализуют аналогичную функциональность, но эти последовательности не фиксированы: зависит от фантазии программиста, от стоящих перед ним задач и т.п.
Дык хотябы в аналоги СИ ассемблеровские последовательности команд, для начинающих прогеров на асм в самый раз.
SII писал(а):Нет таких аналогов. Есть последовательности асмовских команд, которые реализуют аналогичную функциональность, но эти последовательности не фиксированы: зависит от фантазии программиста, от стоящих перед ним задач и т.п.
Дык хотябы в аналоги СИ ассемблеровские последовательности команд, для начинающих прогеров на асм в самый раз.
Ну, до определённой степени можно, но опять-таки весьма условно. Например, асмовский код для анализа условия, аналогичного сишному if (a == b), зависит от типов переменных a и b, а также от того, какие регистры программист будет использовать. Например, если a и b объявлены как char или usigned char, т.е. имеют размер 1 байт, получим что-нить вроде этого:
lds R16, a
lds R17, b
cp R16, R17
brne адрес-ветки-else
Krik99 писал(а):Хотя асм и компактнее, но он низкоуровневый и когда дойдёт дело к действительно сложным программа, прийдёться перейти или на Си или ставить ОС на МК.
Наличие оси абсолютно никак не связано с использованием ЯВУ или асма. Да и сложность программы -- вещь относительная. Я, например, сейчас делаю на асме прогу для своей конторы -- уже около 3877 строк (правда, я не скуплюсь на комменты и пустые строки, но всё ж). Израсходовано 52,3% программной памяти (собственно выполнимого кода 4390 байт, данных, хранящихся в ПЗУ -- 4180). Много это или мало? Кому-то может показаться, что много, но для меня -- мало. В конце концов, во время оно глубоко разбирался с одной осью (RSX-11M), ну а там ядро без драйверов порядка 30 тысяч строк имеет на асме. Ну а суммарный объём кода в ранних версиях OS/360 -- больше 2 млн. строк, и тоже на асме (правда, в это число входит не только собственно ОС, но и утилиты всякие). Так что всё относительно...
А вообще, выбор языка должен в первую очередь зависеть от характера задачи. Писать программу с массой математических вычислений на асме -- удовольствие очень сомнительное, особенно на примитивных асмах. Ну а если программа состоит сплошь из "логических" действий из серии "проверить бит А -- установить бит Б", то написать её на асме если и сложней, чем на ЯВУ, то ненамного.
Здрасте Тема холиварная (имхо), но все же хотелось бы узнать, как обстоят дела на самом деле.
Немного пишу на асме (авр) чисто для себя. И вопрос - насколько актуален асм как язык? В наши дни на нем пишут драйвера для компьютерного железа, или, скажем...управление посудомойкой, стиральной машинкой? Т.е. сейчас его используют на уровне железа? Или намного чаще используют си?
На днях ходил искать работу, в одной конторе немного рассказали про свой проект. Для чего именно пишут - не сказали, но в общем - на питоне и си++, а когда нужно спуститься до уровня железа - на си. Подумал, может, я отстал от жизни и сейчас контроллеры с большими объемами ресурсов не требуют такой точности и контроля? А ЦОС тоже не требует асма?