Как вставить в код на ассемблере, фрагмент на СИ

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Dmd24
Родился
Сообщения: 3
Зарегистрирован: Сб май 12, 2012 10:13:57

Как вставить в код на ассемблере, фрагмент на СИ

Сообщение Dmd24 »

Помогите, пожалуйста. Пишу код в AVRStudio на ассемблере. Один фрагмент программы трудоёмкий и сложно реализуем на ассемблере.
1. Можно ли в программный код на ассемблере вставить фрагмент на си.
2. Или написать на си фрагмент (только фрагмент) и из него сгенерировать asm, а потом вставить его в код на ассемблере.
И как это сделать, потому что, как я понял, при компиляции по умолчанию из си asm не генерируется.
Реклама
luxin
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Сб янв 29, 2011 15:00:44
Откуда: Polesye

Re: Как вставить в код на ассемблере, фрагмент на СИ

Сообщение luxin »

Теоретически можно, но мороки ...
А может лучше писать на Си и делать вставки на ассемблере?
Реклама
Dmd24
Родился
Сообщения: 3
Зарегистрирован: Сб май 12, 2012 10:13:57

Re: Как вставить в код на ассемблере, фрагмент на СИ

Сообщение Dmd24 »

Понимаю что на си проще, но я си плохо понимаю (пока ещё не освоил). Ассемблер мне проще и понятнее, так что буду разбираться с ассемблером.
Аватара пользователя
Dr. Alex
Это не хвост, это антенна
Сообщения: 1438
Зарегистрирован: Вт окт 28, 2008 09:00:18
Откуда: Украина, Харьков
Контактная информация:

Re: Как вставить в код на ассемблере, фрагмент на СИ

Сообщение Dr. Alex »

Я не совсем понимаю зачем в ассемблерный код делать вставки на Сях??? То ли дело наоборот :)
Порой мне кажется, что я делаю какое-то дерьмо, но когда я вижу, что делают другие, то я чувствую себя гением...
Реклама
Эиком - электронные компоненты и радиодетали
luxin
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Сб янв 29, 2011 15:00:44
Откуда: Polesye

Re: Как вставить в код на ассемблере, фрагмент на СИ

Сообщение luxin »

Вставить нельзя, но можно прилинковать библиотеку. Но придется разбираться все равно с компилятор, чтобы хотя бы узнать как передаются параметры (в разных компилятор это делается по разному).
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Как вставить в код на ассемблере, фрагмент на СИ

Сообщение pyzhman »

Dr. Alex писал(а):Я не совсем понимаю
Надо полагать код сдернут и его надо присобачить.
Docendo discimus
Реклама
Mytilus G.
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Чт окт 28, 2010 03:49:33
Откуда: откуда все люди родятся

Re: Как вставить в код на ассемблере, фрагмент на СИ

Сообщение Mytilus G. »

Если сложно перевести си в ассемблер, то есть вариант (через попу) - дизассемблировать откомпилированный сишный код. :)
Аватара пользователя
walkerru
Сверлит текстолит когтями
Сообщения: 1223
Зарегистрирован: Вс май 16, 2010 15:56:54
Откуда: Москва

Re: Как вставить в код на ассемблере, фрагмент на СИ

Сообщение walkerru »

Ну, это прям напоминает, как мой приятель, когда приделывал Z80 к Ориону-128, системные программы реализовывал на асме с отладочными вставками для более или менее сложных функций на Бейсике )))
А что, и работало, пока не переписал куски кода на асме...

По теме:
С чаще всего допускает вставки на асме. Соответственно, вам правильно сказали: писать на С со вставками на асме ))

То есть, в вашем случае, большинство кода программы будут эти самые вставки на асме, а часть - на С

То есть, задача решится именно так, как вы хотите. Но за счёт использования возможностей Сишного компилятора, а не за счёт геморроев с раздельной компиляцией и передачей параметров между программами.

ИМХО
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: Как вставить в код на ассемблере, фрагмент на СИ

Сообщение Kavka »

Что-то никто не упомянул, что тот же winarv, т.е. gcc, умеет листинги асемблерные генерить.
Т.е. один раз скомпилив Си-шную прогу имеем асм-листинг, который цепляем к (вставляем в) прогу на асме. Ну, естественно, со всеми попутными граблями по передаче/возвращению параметров.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Как вставить в код на ассемблере, фрагмент на СИ

Сообщение BOB51 »

у ассемблера своих возможностей немеряно - для сокращения исходника можно и подключаемые файлы использовать и макросы...
насчет трудоекости - вполне возможно, но насчет "труднореализуем на ассемблере" -абсолютная чушь! 8)
Mytilus G.
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Чт окт 28, 2010 03:49:33
Откуда: откуда все люди родятся

Re: Как вставить в код на ассемблере, фрагмент на СИ

Сообщение Mytilus G. »

Думаю, существование труднореализуемого кода на асме вполне возможно с субъективной точки зрения автора темы.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»