2014 dxdy logo

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

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




 
 Вопрос про связку С и ассемблера и наоборот
Сообщение13.12.2012, 02:13 
Добрый вечер.

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

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

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

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

 
 
 
 Re: Вопрос про связку С и ассемблера и наоборот
Сообщение13.12.2012, 02:21 
Это не переносимо, поэтому везде и есть по разному. Надо писать под конкретный компилятор и тип CPU.

 
 
 
 Re: Вопрос про связку С и ассемблера и наоборот
Сообщение13.12.2012, 11:11 
Аватара пользователя
Вам нужны calling conventions. Их и гуглите. Они обычно описаны в документации к компилятору, и могут в некоторой степени регулироваться (опциями компилятора, или pragma-ми), а с точки зрения ассемблера представляют собой чёткие схемы, что и как надо делать. Например, для x86 наиболее популярны соглашения cdecl и syscall. Они обычно доступны любым компиляторам.

-- 13.12.2012 12:12:33 --

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

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group