Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование %ebp, что-то я до конца не понимаю... 
V
    Опции темы
Goganchic
Дата 17.12.2008, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 678
Регистрация: 18.6.2004

Репутация: нет
Всего: 5



Всем привет! Начинаю изучать ассемблер, и у меня такой вопрос: при вызове функции происходит следующее: сначала на стек кладется адрес возврата, а потом параметры в обратном порядке. Соответственно указатель стека (%esp) здесь сдвигается. Как я понимаю, при вызове или возврате из функции еще как-то используется регистр %ebp. В руководстве  нашел такой текст:
Цитата

%ebp: Base pointer register — указатель базы кадра стека (англ. stack frame). Предназначен для организации произвольного доступа к данным внутри стека.

И больше ничего. Хотелось бы подробнее узнать, что такое %ebp и с чем его едят.

P.s. в ассемблере, я мягко говоря начинающий, так что заранее извиняюсь за глупый или кривосформулированный вопрос.

Заранее спасибо за ответы.
PM Jabber   Вверх
MAKCim
Дата 18.12.2008, 18:11 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 2
Всего: 207



Цитата(Goganchic @  17.12.2008,  14:53 Найти цитируемый пост)
Хотелось бы подробнее узнать, что такое %ebp и с чем его едят.

обычно пролог функции следующий
Код

pushl %ebp
movl %esp, %ebp
subl $128, %esp

здесь 128 - это размер локального стекового фрейма функции (для хранения локальных переменных)
в рамках этого фрейма каждая переменная имеет фиксированное смещение относительно %ebp
и ее значение может быть получено, например, следующим образом
Код

movl -32(%ebp), %eax

32 взято от балды  smile

Добавлено через 1 минуту и 7 секунд
Цитата(Goganchic @  17.12.2008,  14:53 Найти цитируемый пост)
сначала на стек кладется адрес возврата, а потом параметры в обратном порядке.

сначала параметры, потом адрес возврата


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Goganchic
Дата 19.12.2008, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 678
Регистрация: 18.6.2004

Репутация: нет
Всего: 5



MAKCim, пасиб, разобрался
PM Jabber   Вверх
Google
  Дата 24.5.2019, 12:12 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Linux/Unix"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Linux/Unix | Следующая тема »


 




[ Время генерации скрипта: 0.0828 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.