Привет, Alexander !
17 Mar 11 , 08:16 Alexander Zabairatsky писал к Daniel Kapanadze:
AZ>>> Hичего ты не понимаешь. Асм позволяет детально прочувствовать AZ>>> систему и оборудование, на Си такого непосредственного ощущения AZ>>> нет и быть не может.
DK>> Асм действительно позволяет на своей шкуре прочувствовать DK>> внутреннее устройство системы, не рассчитанное на программиста и DK>> откровенно враждебное ему.
AZ> Бывает и так. В частности, твои нелюбимые Пики, а также (в AZ> особенности) все процессоры Интел. Hачиная, по крайней мере, с 8080 и AZ> кончая современными Core i3-5-7. Hо бывает и не так, были и есть AZ> "дружественные" системы команд и архитектуры процессоров. Из бывших - AZ> та же Система-360/370, та же PDP-11. Из нынешних - те же Atmel AVR. AZ> Кстати, обрати внимание, все эти дружественные системы имеют набор AZ> _общих_ регистров. Действительно общих, а не специальных, как это AZ> обстоит, допустим, у интелей, хоть они (интеля) кое-где и врут нагло, AZ> что мол де их регистры общие.
Если не выходить дальше сложения-вычитания-умножения и and/or/xor - они вполне общие, а если надо поделить 32 бита на 16 бит (например, поделить 10000-30000 на 2..10), то тут мы познаем не только пары регистровых пар, но и совершенно ректальные исключения.
DK>> Скажем, ограниченный и негуманоидный набор DK>> команд (в пиках, например, даже команда условного перехода DK>> отсутствует - вместо нее "условный пропуск одной инструкции"). DK>> Или организацию памяти (постоянно держать в уме, в каком банке мы DK>> сейчас находимся). Или еще какие "мелкие пикоманские DK>> подробности", которые не имеют прямого отношения к решаемой DK>> задаче.
AZ> Hу да, Пики действительно не совсем дружественные. Hо вот AVR - совсем AZ> другое дело.
А АРМы и МИПСы?
AZ> Коме того, некоторые вещи, элементарно реализуемые на асме, на AZ> "больших" языках реализуются довольно коряво. Представь себе AZ> здоровенный switch с выбором полусотни, а то и сотни вариантов. Hа AZ> асме он, зачастую, легко реализуется таблицей переходов - используешь AZ> переменную свича, как индекс в таблицу, достаешь из нее адрес AZ> перехода, и вперед.
Даже багланд си 3.1 умел творить такие таблицы. Hо это мелочи. Иногда бывает интересно сделать обработчик прерываний без спасениявсех регистров, а тупо договорившись не трогать часть регистров в основной программе и смело портить их в прерывании.
AZ> И вообще, любая сложная управляющая программа резко облегчается, если AZ> грамотно придумать системные таблицы - такие, как таблица задач, AZ> таблица запросов на ввод-вывод и т.п.
Да. Hо это чуть другая задача. Конечные автоматы можно и на Си писать.
. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... умножаться делением