Knyazushka |
Вопрос про связку С и ассемблера и наоборот 13.12.2012, 02:13 |
|
13/12/12 1
|
Добрый вечер.
Возникла некоторая проблема, к которой я пока не могу найти хороший ответ. А проблема вот какая, есть массив из чисел (массив произвольный) и два параметра (и массив и параметры - это просто числа). Идея такая, что в Сишной функции находиться ассемблеровская вставка, и эта вставка вызывает эту функцию с тремя параметрами.
Проблема в том что я не понимаю, как передать эти три параметра из си в ассемблер, и как потом сделать это наоборот.
Может кто-нибудь сможет что-нибудь подсказать по этому поводу ?
P.S. Погуглив такие вещи я так и не понял как они друг с другом взаимодействуют, так как везде написанно по разному.
|
|
|
|
|
venco |
Re: Вопрос про связку С и ассемблера и наоборот 13.12.2012, 02:21 |
|
Заслуженный участник |
|
04/05/09 4587
|
Это не переносимо, поэтому везде и есть по разному. Надо писать под конкретный компилятор и тип CPU.
|
|
|
|
|
Munin |
Re: Вопрос про связку С и ассемблера и наоборот 13.12.2012, 11:11 |
|
Заслуженный участник |
|
30/01/06 72407
|
Последний раз редактировалось Munin 13.12.2012, 11:12, всего редактировалось 1 раз.
Вам нужны calling conventions. Их и гуглите. Они обычно описаны в документации к компилятору, и могут в некоторой степени регулироваться (опциями компилятора, или pragma-ми), а с точки зрения ассемблера представляют собой чёткие схемы, что и как надо делать. Например, для x86 наиболее популярны соглашения cdecl и syscall. Они обычно доступны любым компиляторам.
-- 13.12.2012 12:12:33 --
А проще всего сделать вашу ассемблерную вставку так, чтобы она ничего не вызывала, а чтобы функция вызывалась вне этой вставки, из Си.
|
|
|
|
|
|
Страница 1 из 1
|
[ Сообщений: 3 ] |
|
Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы