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

 
 
> Сохранение регистров в fies.asm IAR_AVR, Как указать компилятору на использование?
fmdost
сообщение Mar 10 2008, 01:06
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Доброго времени суток Уважаемые!
Прицепил к проэкту асм файл с програмкой проверки crc. Разъясните пожалуйста, как указать компилятору на неоюходимость сохранения используемых в асм файле регистров?
Спасибо.
Файл тут.Прикрепленный файл  crc.rar ( 889 байт ) Кол-во скачиваний: 124
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
fmdost
сообщение Mar 10 2008, 16:23
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Спасибо. По англицки читаю. Про согдлашение по передаче параметров вкурсе.
Повторяю вопрос
Код
main()
{
unsigned char i;
for(i=0;i>100;i++)
  crc_asm(* pointer); // <- вот сдесь может портится(и портится) i  
}

Как сделать что-бы i не портился в АСМ функции?
Например crc_asm() использует ВСЕ доступные регистры, а main() только 1, в котором хранится i.
Очень бы хотелось, что-бы ИАР САМ решил что из регистров надо сохранять. А то выходит, что в АСМ функции придётся сохранять ВСЕ используемые в ней же регистры, или ковырять листинг всей main() на предмет выискивания регистра в котором хранится i .
Go to the top of the page
 
+Quote Post
Baser
сообщение Mar 10 2008, 16:35
Сообщение #3


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Т.Достоевский @ Mar 10 2008, 18:23) *
Как сделать что-бы i не портился в АСМ функции?

Дык вроде я ответил smile.gif
Чтобы i не портился, функция crc_asm(* pointer) должна сохранять (сама, то бишь ВЫ сами) все используемые в ней PRESERVED регистры R4–R15 and R24–R27. Все остальные регистры функция может портить (окромя, конечно stack pointer - R29:R28).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Т.Достоевский   Сохранение регистров в fies.asm IAR_AVR   Mar 10 2008, 01:06
- - Baser   Цитата(Т.Достоевский @ Mar 10 2008, 03:06...   Mar 10 2008, 10:37
|- - Т.Достоевский   Цитата(Baser @ Mar 10 2008, 13:37) Попроб...   Mar 10 2008, 15:05
|- - Baser   Цитата(Т.Достоевский @ Mar 10 2008, 17:05...   Mar 10 2008, 15:59
- - Rst7   Не пойму, какие проблемы это на Си написать?   Mar 10 2008, 11:18
||- - Т.Достоевский   Вот что бывает если нет конкуренции Подымал сдес...   Mar 10 2008, 16:51
||- - Baser   Цитата(Т.Достоевский @ Mar 10 2008, 18:51...   Mar 10 2008, 17:25
|- - Сергей Борщ   Цитата(Т.Достоевский @ Mar 10 2008, 18:23...   Mar 10 2008, 17:12
|- - Т.Достоевский   Цитата(Сергей Борщ @ Mar 10 2008, 20:12) ...   Mar 10 2008, 17:31
|- - Baser   Цитата(Т.Достоевский @ Mar 10 2008, 19:31...   Mar 10 2008, 21:19
- - Rst7   ЦитатаUse it. Вот именно к Вам это и относится. Ч...   Mar 10 2008, 18:37
|- - Т.Достоевский   Цитата(Rst7 @ Mar 10 2008, 21:37) ...Спис...   Mar 10 2008, 19:31
- - Rst7   ЦитатаА разве в GCC не RTL? RTL это кажется станда...   Mar 11 2008, 06:43
|- - Т.Достоевский   Цитата(Rst7 @ Mar 11 2008, 09:43) Чем??? ...   Mar 11 2008, 13:30
- - Rst7   ЦитатаRTL. Это вы про язык распределения регистро...   Mar 11 2008, 14:27


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 17:33
Рейтинг@Mail.ru


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