2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Вопрос про связку С и ассемблера и наоборот
Сообщение13.12.2012, 02:13 


13/12/12
1
Добрый вечер.

Возникла некоторая проблема, к которой я пока не могу найти хороший ответ. А проблема вот какая, есть массив из чисел (массив произвольный) и два параметра (и массив и параметры - это просто числа). Идея такая, что в Сишной функции находиться ассемблеровская вставка, и эта вставка вызывает эту функцию с тремя параметрами.

Проблема в том что я не понимаю, как передать эти три параметра из си в ассемблер, и как потом сделать это наоборот.

Может кто-нибудь сможет что-нибудь подсказать по этому поводу ?

P.S. Погуглив такие вещи я так и не понял как они друг с другом взаимодействуют, так как везде написанно по разному.

 Профиль  
                  
 
 Re: Вопрос про связку С и ассемблера и наоборот
Сообщение13.12.2012, 02:21 
Заслуженный участник


04/05/09
4587
Это не переносимо, поэтому везде и есть по разному. Надо писать под конкретный компилятор и тип CPU.

 Профиль  
                  
 
 Re: Вопрос про связку С и ассемблера и наоборот
Сообщение13.12.2012, 11:11 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Вам нужны calling conventions. Их и гуглите. Они обычно описаны в документации к компилятору, и могут в некоторой степени регулироваться (опциями компилятора, или pragma-ми), а с точки зрения ассемблера представляют собой чёткие схемы, что и как надо делать. Например, для x86 наиболее популярны соглашения cdecl и syscall. Они обычно доступны любым компиляторам.

-- 13.12.2012 12:12:33 --

А проще всего сделать вашу ассемблерную вставку так, чтобы она ничего не вызывала, а чтобы функция вызывалась вне этой вставки, из Си.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group