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

 
 
> Сохранение регистров в 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
Ответов
Rst7
сообщение Mar 10 2008, 18:37
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Use it.


Вот именно к Вам это и относится. Что такого в функциях, написанных на асме (я имею в виду файл, который подключен к сообщению), что делает невозможным прямое написание их на Си и, как результат, не парить моск вопросом связывания Си<->асм?

Цитата
В функции используется только 1а переменная(r16) а пролог тупейше сохраняет ВСЕ регистры!!! Вот вам и 1.1 раза по сравнению с АСМ.Скорее бы Кейл АВРом занялся, а то ИАР какой-то тошнотик.


И будет сохранять. Такой принцип построения компилятора. И другой компилятор действовать будет точно так же (т.е. сохранять scratch-регистры). Способ борьбы - не использовать вложенные функции в прерываниях или писать процедуры прерывания на ассемблере.

Цитата
Но вопрос не праздный, пригодится!


Почему Вы принципиально не хотите прочитать раздел, посвященный интерфейсу сишных и асмовских функций? Вдумчиво прочитать. Там все написано - есть регистры, которые можно изменять (scratch-регистры) и которые нужно приводить на выходе из процедуры в тот же вид, что и на входе. Все. Список тех и других регистров зависит от компилятора, например, в IAR AVR и GCC AVR они разные, и находится этот список в доке по компилятору.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
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:23
|- - Baser   Цитата(Т.Достоевский @ Mar 10 2008, 18:23...   Mar 10 2008, 16:35
||- - Т.Достоевский   Вот что бывает если нет конкуренции Подымал сдес...   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 @ 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 Текстовая версия Сейчас: 29th July 2025 - 17:12
Рейтинг@Mail.ru


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