[an error occurred while processing this directive]
Все получиться :) - сам делал ...
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено проходивший 23 октября 2003 г. 03:41
В ответ на: Вызов функции С в асмовской программе отправлено Странник 23 октября 2003 г. 02:46

В общем то в вопросе не ясно для какого процика - поэтому с примером придется повременить :)

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

А теперь обратно asm вызывает Цэ - все то же самое! - только ваша asm процедура должна растолкать параметры функции по рагистрам и стеку и вызвать Цэ функцию. Цэ функция получив параметря там где ожидает - выполнит свою рабоу и откуда ей знать кто ее вызвал asm или Цэ функция?

Как именно расталкивать параметры по егистрам и стеку - смотрите в описании конкретного Цэ компилятора - например для техасовских 54xx и 55xx - это совершенно разные способы расталкиваня.
При этом в описании компилятора вполне четко описано - какие регистры должна сохпянять вызывающая функция, а какие вызываемая.

Вот кратко и все.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru