[an error occurred while processing this directive]
Так странный был-бы компилятор, если бы он не мог использовать какие-то регистры.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено viiv 10 июня 2003 г. 16:06
В ответ на: ну я и спрашиваю, какие регистры ИАР имеет право юзать как лок переменные а какие не трогает ? ЛЮДИ ЕСТЬ ЛИ В ПРИРОДЕ НОРМАЛЬНЫЕ ПРОЦЫ БЕЗ РЕГИСТРОВ ??? Все на стеке ? отправлено DASM 10 июня 2003 г. 15:43

Другое дело, что может можно сказать компилятору что не надо трогать такие-то регистры. Как это сделать я не знаю (не работал я с IAR).

А вообще, в ОПЕРАЦИОНКЕ, по моему мнению, надо сохранять все. Пользователю Вашей операционки может захотеться написать кусочек, например, на ассемблере с использыванием любых регистров - даже тех,
которые C компилятор не трогает.

И еще. Не сохраняя все регистры Вы можете чуть-чуть выиграть (например, если компилятор в регистре всегда держит константу (R0=0)).
Т.е. виигрыш будет 1 - 2 команды сохранения/восстановления. Вииграть много не удастся, так как для этого надо, чтобы не использовалось много регистров (например не использовать 16 регистров) - а это будет значительно худший код. Так что я не понимаю зачем вообще думать над этим вопросом - сохранять все и никаких проблем.

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

Ответы



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

E-mail: info@telesys.ru