Как вставить в код на ассемблере, фрагмент на СИ
Как вставить в код на ассемблере, фрагмент на СИ
Помогите, пожалуйста. Пишу код в AVRStudio на ассемблере. Один фрагмент программы трудоёмкий и сложно реализуем на ассемблере.
1. Можно ли в программный код на ассемблере вставить фрагмент на си.
2. Или написать на си фрагмент (только фрагмент) и из него сгенерировать asm, а потом вставить его в код на ассемблере.
И как это сделать, потому что, как я понял, при компиляции по умолчанию из си asm не генерируется.
1. Можно ли в программный код на ассемблере вставить фрагмент на си.
2. Или написать на си фрагмент (только фрагмент) и из него сгенерировать asm, а потом вставить его в код на ассемблере.
И как это сделать, потому что, как я понял, при компиляции по умолчанию из си asm не генерируется.
- Реклама
-
luxin
- Нашел транзистор. Понюхал.
- Сообщения: 161
- Зарегистрирован: Сб янв 29, 2011 15:00:44
- Откуда: Polesye
Re: Как вставить в код на ассемблере, фрагмент на СИ
Теоретически можно, но мороки ...
А может лучше писать на Си и делать вставки на ассемблере?
А может лучше писать на Си и делать вставки на ассемблере?
Re: Как вставить в код на ассемблере, фрагмент на СИ
Понимаю что на си проще, но я си плохо понимаю (пока ещё не освоил). Ассемблер мне проще и понятнее, так что буду разбираться с ассемблером.
- Dr. Alex
- Это не хвост, это антенна
- Сообщения: 1438
- Зарегистрирован: Вт окт 28, 2008 09:00:18
- Откуда: Украина, Харьков
- Контактная информация:
Re: Как вставить в код на ассемблере, фрагмент на СИ
Я не совсем понимаю зачем в ассемблерный код делать вставки на Сях??? То ли дело наоборот 
Порой мне кажется, что я делаю какое-то дерьмо, но когда я вижу, что делают другие, то я чувствую себя гением...
-
luxin
- Нашел транзистор. Понюхал.
- Сообщения: 161
- Зарегистрирован: Сб янв 29, 2011 15:00:44
- Откуда: Polesye
Re: Как вставить в код на ассемблере, фрагмент на СИ
Вставить нельзя, но можно прилинковать библиотеку. Но придется разбираться все равно с компилятор, чтобы хотя бы узнать как передаются параметры (в разных компилятор это делается по разному).
- Реклама
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Как вставить в код на ассемблере, фрагмент на СИ
Надо полагать код сдернут и его надо присобачить.Dr. Alex писал(а):Я не совсем понимаю
Docendo discimus
-
Mytilus G.
- Нашел транзистор. Понюхал.
- Сообщения: 162
- Зарегистрирован: Чт окт 28, 2010 03:49:33
- Откуда: откуда все люди родятся
Re: Как вставить в код на ассемблере, фрагмент на СИ
Если сложно перевести си в ассемблер, то есть вариант (через попу) - дизассемблировать откомпилированный сишный код. 
- walkerru
- Сверлит текстолит когтями
- Сообщения: 1223
- Зарегистрирован: Вс май 16, 2010 15:56:54
- Откуда: Москва
Re: Как вставить в код на ассемблере, фрагмент на СИ
Ну, это прям напоминает, как мой приятель, когда приделывал Z80 к Ориону-128, системные программы реализовывал на асме с отладочными вставками для более или менее сложных функций на Бейсике )))
А что, и работало, пока не переписал куски кода на асме...
По теме:
С чаще всего допускает вставки на асме. Соответственно, вам правильно сказали: писать на С со вставками на асме ))
То есть, в вашем случае, большинство кода программы будут эти самые вставки на асме, а часть - на С
То есть, задача решится именно так, как вы хотите. Но за счёт использования возможностей Сишного компилятора, а не за счёт геморроев с раздельной компиляцией и передачей параметров между программами.
ИМХО
А что, и работало, пока не переписал куски кода на асме...
По теме:
С чаще всего допускает вставки на асме. Соответственно, вам правильно сказали: писать на С со вставками на асме ))
То есть, в вашем случае, большинство кода программы будут эти самые вставки на асме, а часть - на С
То есть, задача решится именно так, как вы хотите. Но за счёт использования возможностей Сишного компилятора, а не за счёт геморроев с раздельной компиляцией и передачей параметров между программами.
ИМХО
Re: Как вставить в код на ассемблере, фрагмент на СИ
Что-то никто не упомянул, что тот же winarv, т.е. gcc, умеет листинги асемблерные генерить.
Т.е. один раз скомпилив Си-шную прогу имеем асм-листинг, который цепляем к (вставляем в) прогу на асме. Ну, естественно, со всеми попутными граблями по передаче/возвращению параметров.
Т.е. один раз скомпилив Си-шную прогу имеем асм-листинг, который цепляем к (вставляем в) прогу на асме. Ну, естественно, со всеми попутными граблями по передаче/возвращению параметров.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Re: Как вставить в код на ассемблере, фрагмент на СИ
у ассемблера своих возможностей немеряно - для сокращения исходника можно и подключаемые файлы использовать и макросы...
насчет трудоекости - вполне возможно, но насчет "труднореализуем на ассемблере" -абсолютная чушь!
насчет трудоекости - вполне возможно, но насчет "труднореализуем на ассемблере" -абсолютная чушь!
-
Mytilus G.
- Нашел транзистор. Понюхал.
- Сообщения: 162
- Зарегистрирован: Чт окт 28, 2010 03:49:33
- Откуда: откуда все люди родятся
Re: Как вставить в код на ассемблере, фрагмент на СИ
Думаю, существование труднореализуемого кода на асме вполне возможно с субъективной точки зрения автора темы.


