Соглашение GCC при вызове функций

Модератор: Модераторы разделов

Serg79
Сообщения: 153

Соглашение GCC при вызове функций

Сообщение Serg79 »

Подскажите кто знает, какие регистры процессора "i386" вызванная функция может изменять внутри себя, а какие должна востанавливать при выходе.

И если кто знает, ткните носом, в каком разделе про это написанно в доке по GCC. Я использую "pdf" документ "Using the GNU Compiler Collection (GCC)" для GCC версии 3.4.6 , ну и конечно "man gcc". А то, Я что то там про это ничего не нашел.
Спасибо сказали:
Serg79
Сообщения: 153

Re: Соглашение GCC при вызове функций

Сообщение Serg79 »

Понятно, спасибо.
Еще такой вопрос, по умолчанию GCC какой метод вызова использует (cdecl, stdcall и т.д.)?
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Соглашение GCC при вызове функций

Сообщение serzh-z »

Serg79 писал(а):
14.06.2007 16:24
по умолчанию GCC
cdecl для C/C++, как бы это не было удивительно для C-компилятора. :)
Спасибо сказали:
Serg79
Сообщения: 153

Re: Соглашение GCC при вызове функций

Сообщение Serg79 »

Не парни, вы меня немного не правельно поняли. Я знаю как передаються и возвращаются параметры функций.

Меня интересовал другой вопрос, какие регистры процессора i386 компилятор GCC востанавливает после себя если он их использовал. Я так понял, что функция должна востанавливать после себя следующие регистры: %ebx, %esi, %edi, %ebp, %ds, %es и %ss .

Если я что то забыл то добавте.
Спасибо сказали: