Различные сборочные вопросы - PullRequest
0 голосов
/ 23 мая 2011

Я смотрю на некоторые сборочные материалы.Итак, pushl bar - это то же самое, что и subl $4, %esp movl bar, ($esp).

Несколько вопросов:

1) Что особенного в регистре %esp?

2) Что означают круглые скобки вокруг регистра?

3) pushl bar означало бы наличие бара на вершине стека, верно?Так что же происходит, когда я делаю subl $4?Означает ли это, что я создаю пустое место на вершине стека, чтобы я мог переместиться на bar?

1 Ответ

1 голос
/ 23 мая 2011
  1. ESP - указатель стека - он всегда указывает на «вершину» стека

  2. Скобки означают «память, на которую указывает» ESP, а не сам регистр ESP

  3. Вы перемещаете указатель стека вниз на четыре байта (в большинстве реализаций стек увеличивается вниз - помещать что-либо на «вершину» стека означает хранить его на нижнем адресе памяти)
...