Страница 1 из 1

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

Добавлено: Сб май 12, 2012 10:18:17
Dmd24
Помогите, пожалуйста. Пишу код в AVRStudio на ассемблере. Один фрагмент программы трудоёмкий и сложно реализуем на ассемблере.
1. Можно ли в программный код на ассемблере вставить фрагмент на си.
2. Или написать на си фрагмент (только фрагмент) и из него сгенерировать asm, а потом вставить его в код на ассемблере.
И как это сделать, потому что, как я понял, при компиляции по умолчанию из си asm не генерируется.

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

Добавлено: Сб май 12, 2012 13:00:57
luxin
Теоретически можно, но мороки ...
А может лучше писать на Си и делать вставки на ассемблере?

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

Добавлено: Сб май 12, 2012 16:12:07
Dmd24
Понимаю что на си проще, но я си плохо понимаю (пока ещё не освоил). Ассемблер мне проще и понятнее, так что буду разбираться с ассемблером.

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

Добавлено: Сб май 12, 2012 16:14:53
Dr. Alex
Я не совсем понимаю зачем в ассемблерный код делать вставки на Сях??? То ли дело наоборот :)

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

Добавлено: Сб май 12, 2012 16:59:52
luxin
Вставить нельзя, но можно прилинковать библиотеку. Но придется разбираться все равно с компилятор, чтобы хотя бы узнать как передаются параметры (в разных компилятор это делается по разному).

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

Добавлено: Сб май 12, 2012 17:20:00
pyzhman
Dr. Alex писал(а):Я не совсем понимаю
Надо полагать код сдернут и его надо присобачить.

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

Добавлено: Вс май 13, 2012 22:05:38
Mytilus G.
Если сложно перевести си в ассемблер, то есть вариант (через попу) - дизассемблировать откомпилированный сишный код. :)

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

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

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

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

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

ИМХО

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

Добавлено: Вс май 20, 2012 22:45:58
Kavka
Что-то никто не упомянул, что тот же winarv, т.е. gcc, умеет листинги асемблерные генерить.
Т.е. один раз скомпилив Си-шную прогу имеем асм-листинг, который цепляем к (вставляем в) прогу на асме. Ну, естественно, со всеми попутными граблями по передаче/возвращению параметров.

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

Добавлено: Пн май 21, 2012 07:05:31
BOB51
у ассемблера своих возможностей немеряно - для сокращения исходника можно и подключаемые файлы использовать и макросы...
насчет трудоекости - вполне возможно, но насчет "труднореализуем на ассемблере" -абсолютная чушь! 8)

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

Добавлено: Пн май 21, 2012 12:23:19
Mytilus G.
Думаю, существование труднореализуемого кода на асме вполне возможно с субъективной точки зрения автора темы.