Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [avr] ASM под WinAVR 
:(
    Опции темы
Ivan.
Дата 5.12.2007, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 2.11.2004

Репутация: 1
Всего: 2



Я в асме не силен, последнее время пишу только на С++, но некоторые библиотеки всетаки хотелось бы написать на asm.
Вопрос вот в чем: как совместить C++ с ассемблером, а конкретно, есть класс T, а у него какой то метод Method() (каторый я хочу реализовать на asm). По логике вещей, что получается:
File.h
Код

extern "C" void T::Method();
...

File.S
Код

.global T::Method
T::Method:
...

Но естественно так не канает, а как правильно написать?


--------------------
Я могу ВСЁ, вопрос - сколько времени у меня это займет!
PM MAIL ICQ   Вверх
cardinal
Дата 5.12.2007, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 8
Всего: 99



А если посмотреть на то, что компилятор из твоего кода на С++ делает? Можно ведь asm listing создать...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Den64
Дата 5.12.2007, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 6.4.2006
Где: Курск

Репутация: 1
Всего: 2



Если C++ поддерживает ассемблерные вставки то можно исполшьзовать их...

Чтота типа этого, но неуверен..
Код


  void Cl::Func1(void)
  {
    __asm__("nop"\
              "ret");
  }



Это сообщение отредактировал(а) Den64 - 5.12.2007, 22:26
--------------------
Инагда пишу звуками.
PM WWW ICQ   Вверх
Mazzi
Дата 6.12.2007, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Правильный
**


Профиль
Группа: Комодератор
Сообщений: 825
Регистрация: 3.4.2003

Репутация: 9
Всего: 21



Укажи какими средствами разработки пользуешься.


--------------------
Мне нужны помощники.
PM MAIL WWW   Вверх
Ivan.
Дата 6.12.2007, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 2.11.2004

Репутация: 1
Всего: 2



WinAVR, соответственно.
Ассемблерные вставки мне уже надоели по некоторым причинам.
В liste метка получается типа: _Z5TConvConvv, а то и того хуже.
Это вроде: _БлаБлаКлассМетодVoid (void - типа входной параметр для перегрузки), бывает 4 вместо 5.


--------------------
Я могу ВСЁ, вопрос - сколько времени у меня это займет!
PM MAIL ICQ   Вверх
cardinal
Дата 6.12.2007, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 8
Всего: 99



Ivan., а такой вопрос зачем тебе ассемблер для написания самой структуры класса? У тебя есть тонкий момент, так его и замени, а остальное не надо...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Ivan.
Дата 6.12.2007, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 2.11.2004

Репутация: 1
Всего: 2



Саму декларацию структуры я хочу сделать в header-е, реализацию зашить в библиотеку и закрыть ее, чтобы она больше никагда не трогалась. А то эти ассемблерные вставки вечно глючат от версии к весии компилятора и вечно трясешся над ними. Как какой нибудь непонятный глюк в программе - начинаешь проверять правильность скомпилированного кода и именно в этих тонких вещах как правило они и появляются.


--------------------
Я могу ВСЁ, вопрос - сколько времени у меня это займет!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.2357 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.