|
|
|
Goganchic |
|
|||
Опытный Профиль Группа: Участник Сообщений: 678 Регистрация: 18.6.2004 Репутация: нет Всего: 5 |
Всем привет! Начинаю изучать ассемблер, и у меня такой вопрос: при вызове функции происходит следующее: сначала на стек кладется адрес возврата, а потом параметры в обратном порядке. Соответственно указатель стека (%esp) здесь сдвигается. Как я понимаю, при вызове или возврате из функции еще как-то используется регистр %ebp. В руководстве нашел такой текст:
И больше ничего. Хотелось бы подробнее узнать, что такое %ebp и с чем его едят. P.s. в ассемблере, я мягко говоря начинающий, так что заранее извиняюсь за глупый или кривосформулированный вопрос. Заранее спасибо за ответы. |
|||
|
||||
MAKCim |
|
||||||||
Воін дZэна Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 2 Всего: 207 |
обычно пролог функции следующий
здесь 128 - это размер локального стекового фрейма функции (для хранения локальных переменных) в рамках этого фрейма каждая переменная имеет фиксированное смещение относительно %ebp и ее значение может быть получено, например, следующим образом
32 взято от балды Добавлено через 1 минуту и 7 секунд
сначала параметры, потом адрес возврата -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||||
|
|||||||||
Goganchic |
|
|||
Опытный Профиль Группа: Участник Сообщений: 678 Регистрация: 18.6.2004 Репутация: нет Всего: 5 |
MAKCim, пасиб, разобрался
|
|||
|
||||
Правила форума "Asm для Linux/Unix" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для Linux/Unix | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |