Подскажите кто знает, какие регистры процессора "i386" вызванная функция может изменять внутри себя, а какие должна востанавливать при выходе.
И если кто знает, ткните носом, в каком разделе про это написанно в доке по GCC. Я использую "pdf" документ "Using the GNU Compiler Collection (GCC)" для GCC версии 3.4.6 , ну и конечно "man gcc". А то, Я что то там про это ничего не нашел.
Соглашение GCC при вызове функций
Модератор: Модераторы разделов
-
oav
- Бывший модератор
- Сообщения: 296
-
Serg79
- Сообщения: 153
Re: Соглашение GCC при вызове функций
Понятно, спасибо.
Еще такой вопрос, по умолчанию GCC какой метод вызова использует (cdecl, stdcall и т.д.)?
Еще такой вопрос, по умолчанию GCC какой метод вызова использует (cdecl, stdcall и т.д.)?
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
Serg79
- Сообщения: 153
Re: Соглашение GCC при вызове функций
Не парни, вы меня немного не правельно поняли. Я знаю как передаються и возвращаются параметры функций.
Меня интересовал другой вопрос, какие регистры процессора i386 компилятор GCC востанавливает после себя если он их использовал. Я так понял, что функция должна востанавливать после себя следующие регистры: %ebx, %esi, %edi, %ebp, %ds, %es и %ss .
Если я что то забыл то добавте.
Меня интересовал другой вопрос, какие регистры процессора i386 компилятор GCC востанавливает после себя если он их использовал. Я так понял, что функция должна востанавливать после себя следующие регистры: %ebx, %esi, %edi, %ebp, %ds, %es и %ss .
Если я что то забыл то добавте.