реклама на сайте
подробности

 
 
> Передача аргументов из Си в Асм и обратно, Кто как делает?
=GM=
сообщение Jun 12 2007, 18:29
Сообщение #1


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Народ, у меня такой вопрос назрел.

Для тексасовских процов, кто как передаёт аргументы из головной программы, написанной на Си в ассемблерную подпрограмму и как получает обратно?

До недавнего времени передавал обычно адреса двух массивов, один для входных аргументов, второй для выходных. Ещё раньше передавал значения через стек. Теперь стал задумываться о передаче и получении аргументов по значению.

Стало интересно выяснить, а как вы делаете?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AVL
сообщение Jun 12 2007, 20:08
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 392
Регистрация: 29-05-07
Из: Москва
Пользователь №: 28 020



Для каких именно?
Я программирую сейчас для TMS320C55x. Передаю и получаю параметры через регистры и/или указатели на массивы.
Есть полезный документ TMS320C55x Optimizing C/C++ Compiler User's Guide (spru281d.pdf).
В разделе Run-Time Environment->Function Structure and Calling Conventions описано какие регистры для чего используются при вызове дочерней подпрограммы из родительской.
Например регистры xar0...xar4 для передачи указателей, t0, t1, ar0...ar4, ac0...ac2 - аргументы по значению. Возврат значения в t0, ac0.
Более подробно и обо всех возможностях см. указанный документ.

Сообщение отредактировал AVL - Jun 12 2007, 20:08
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 00:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.0138 секунд с 7
ELECTRONIX ©2004-2016