[an error occurred while processing this directive]
Да я на ассемблере пишу...Ну иногда для нашего электронщика пишу модули вызываемые из Си или просто для скорости, когда нужна мухобойная задача.
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

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

Отправлено GM 18 марта 2005 г. 17:58
В ответ на: А может Си по другому соптимизировал код. Посмотри в ассемблерном листинге до и после NOP. отправлено Sl_ 18 марта 2005 г. 17:35

В листинге ничего нет лишнего ни до, ни после нопа.

Проблему поборол некрасивым, но эффективным способом - перед циклом поставил .align 2. Компилер ужасно умный, сам(!) вставляет 1,2,3 нопа до цикла.

Если адрес начала цикла не меняется, то и время не меняется. Если я сдвигаю адрес начала цикла на одно слово - время выполнения цикла изменяется, если же сдвигаю на два слова - время возвращается к старому значению.

Проблема разрешена, но как объяснить ее возникновение? Показывал проблему представителю тексаса, он тоже разводит руками, не может объяснить. Я склоняюсь к выводу о несимметричности выборок 16-битных и 32-битных команд.

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

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


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

E-mail: info@telesys.ru