Насчёт ''для души'' - согласен. Насчёт ошибок - нет
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено CD_Eater 09 апреля 2005 г. 17:52
В ответ на: Вполне возможно, только на ассемблере нетривиальные глюки можно делать гораздо чаще. отправлено Bill 09 апреля 2005 г. 17:34

Кто мешает программировать на АСМе в соответствии с идеями структурного программирования и даже ООП ?
Это и есть путь избежать ошибок.

Применительно к многорегистровым ядрам (типа АВР) бывает полезно описать сначала использование регистров разными частями программы, и строго придеживаться этого. Это может дать большую экономию (в разы) по сравнению с оптимизирующими компиляторами, потому что Вы изначально строите "карту использования регистров" в соответствии с Вашей текущей задачей, а компилятор лишь пытается распределить переменные в регистры/память по некоторым (универсальным) эмпирическим правилам, от Вашей задачи не зависящим. Также припрограммировании в АСМе допустимы трюки с параллельным использованием одного и того же регистра в разных частях программы, если из логики работы Вашей программы ясно, что это не вызовет коллизий. Компилятор таких вещей не видит.
Когда имеется 50 переменных и только 30 из них влезает в регистры, то выигрыш от неиспользования стека или памяти может быть весьма велик.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru