roboforum.ru

Технический форум по робототехнике.
Текущее время: 21 май 2025, 08:03

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Использование регистров в асм-вставках в Си (CVAVR)
СообщениеДобавлено: 20 сен 2011, 12:41 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 996
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
Нужно сделать ассемблерную вставку в код Си
и там используются 2 регистра, в частности R16 и R0. Можно как то объявить компилятору чтоб он их не использовал?

В описании компилятора подобных директив не нашел :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование регистров в асм-вставках в Си (CVAVR)
СообщениеДобавлено: 20 сен 2011, 15:14 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
в асме сохрани эти регистры в стеке, а перед выходом из асм-вставки восстанови их.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование регистров в асм-вставках в Си (CVAVR)
СообщениеДобавлено: 20 сен 2011, 15:25 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Компилятор какой?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование регистров в асм-вставках в Си (CVAVR)
СообщениеДобавлено: 20 сен 2011, 15:33 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 996
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
CodeVision AVR, я же написал в теме

Видел в других компиляторах надпись типа
register unsigned char b1 @16;

Т.е. назначают переменной регистр - соотв. компилятор его не использует. В CVAVR как такое сделать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование регистров в асм-вставках в Си (CVAVR)
СообщениеДобавлено: 20 сен 2011, 15:39 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Ой, сорри, просмотрел... CVAVR не знаю.

Нужно искать в тугоментации соглашение об использовании регистров
(библиотеки ведь как-то должны же писать для него).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование регистров в асм-вставках в Си (CVAVR)
СообщениеДобавлено: 20 сен 2011, 15:40 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 996
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
А, я понял, туплю
Тут тоже также, просто номера регистров не такие. я для регистра R16 писал
register unsigned char b1 @16;

А это соответствует регистру R2, который компилятор не разрешал трогать, поэтому и выдавал ошибку.
Регистр R16 это @30 я правильно понимаю?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование регистров в асм-вставках в Си (CVAVR)
СообщениеДобавлено: 20 сен 2011, 15:59 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Вот уж не знаю. В GCC регистры называются своими собственными именами :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO