Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > Как возвращают результат Сишные ф-ции?


Автор: Kurt 2.10.2004, 01:28
Пытаюсь разобраться с программирование на Ассемблере под Linux. Играюсь с вызовом сишных функций из асма (использую стандартный ассемблер as).
Возник такой вопрос:
вот в Windows API-функция всегда возвращает результат (или не возвращает вовсе) в регистре eax, а как в Linux? Стандартизирован ли этот момент? Или тут все зависит от автора функции?

З.Ы. Возможно, не в том разделе задал вопрос, если так - прошу не ругатся сильно. withstupid.gif

Автор: dargaard 2.10.2004, 06:19
Результат будет в еах
док-воsmile.gif
Код

int k();
int main() {  int d; d=k(); }
int k() { return 2; }


gcc -S test.c
Код

....
   call    k
   movl    %eax, -4(%ebp)
....
       k:
       pushl   %ebp
       movl    %esp, %ebp
       movl    $2, %eax
       leave
       ret
....


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)