реклама на сайте
подробности

 
 
> Асмовые процедуры, Для EW AVR 5.11
SasaVitebsk
сообщение Nov 1 2008, 22:39
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Доброго времени суток.

Вожусь с bootload для малых камней 8/88 и т.п. Перепробовал различные фирменные - написал полностью сам. В исследованом мной MegaLoad имеются просто ошибки прямые. Не представляю как он может работать. Ну да ладно.

Пришёл к оптимизации. При исследованиях обнаружил прикольную вещь. IAR не использует ~8 регистров. 2,3 и с 10 по 15. Если компилятору указываешь не использовать с 10 по 15, то код становится короче байт на 20. Причину не выяснил. smile.gif

Написал 2 п/п на асме CRC и декодер (на Си - не влазило ~102 байта). Теперь вроде влезло. Правда ещё отлаживать придётся (В смысле только декодер. Так как всё остальное полностью проверил).

При написании возникли вопросы непонятные (по асму).
1) Почему-то компилятор ругается на использование регистровой пары X. Предлагает её заменить на Y или Z. В другом проекте (я проверил) он позволял мне это делать. Почему?
2) Надо ли мне сохранять использованые в п/п регистры самому? Или аналогичный ... Какие из регистров я могу безболезненно использовать (компилятор опознает и по другому сгенерит прогу)?

Ну кроме тех (естественно) которые я блокирнул (r10-r15) и тех которые используются под вызов (r16,r17). Это я могу однозначно использовать. smile.gif

Непонятно и с регистровой парой Y. Компилятор же её под стек использует (хотя просматривая листинг нашёл только одно место на 1 байт).
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 03:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01327 секунд с 7
ELECTRONIX ©2004-2016