Помогите, пожалуйста. Пишу код в AVRStudio на ассемблере. Один фрагмент программы трудоёмкий и сложно реализуем на ассемблере.
1. Можно ли в программный код на ассемблере вставить фрагмент на си.
2. Или написать на си фрагмент (только фрагмент) и из него сгенерировать asm, а потом вставить его в код на ассемблере.
И как это сделать, потому что, как я понял, при компиляции по умолчанию из си asm не генерируется.
Вставить нельзя, но можно прилинковать библиотеку. Но придется разбираться все равно с компилятор, чтобы хотя бы узнать как передаются параметры (в разных компилятор это делается по разному).
Ну, это прям напоминает, как мой приятель, когда приделывал Z80 к Ориону-128, системные программы реализовывал на асме с отладочными вставками для более или менее сложных функций на Бейсике )))
А что, и работало, пока не переписал куски кода на асме...
По теме:
С чаще всего допускает вставки на асме. Соответственно, вам правильно сказали: писать на С со вставками на асме ))
То есть, в вашем случае, большинство кода программы будут эти самые вставки на асме, а часть - на С
То есть, задача решится именно так, как вы хотите. Но за счёт использования возможностей Сишного компилятора, а не за счёт геморроев с раздельной компиляцией и передачей параметров между программами.
Что-то никто не упомянул, что тот же winarv, т.е. gcc, умеет листинги асемблерные генерить.
Т.е. один раз скомпилив Си-шную прогу имеем асм-листинг, который цепляем к (вставляем в) прогу на асме. Ну, естественно, со всеми попутными граблями по передаче/возвращению параметров.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
у ассемблера своих возможностей немеряно - для сокращения исходника можно и подключаемые файлы использовать и макросы...
насчет трудоекости - вполне возможно, но насчет "труднореализуем на ассемблере" -абсолютная чушь!