· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› VC++: Что со стеком?

Посл.отвђт Сообщенiе


Дата: Июл 11, 2004 20:30:17 · Поправил: _DEN_

Вот моя функция:
void __stdcall f(int i)
{
  __asm
  {
    Чего-нибудь-там-на-асме
  }
}

Заходим в __asm. В dword [esp] у нас ebp, потому как мы всегда начинаемся как
push ebp
mov ebp,esp

Далее, в dword [esp+4] у нас адрес возврата. Вроде все. Почему же тогда параметр i лежит в dword [esp+12] ?? Что там еще за дворд такой?


Дата: Июл 11, 2004 21:24:52

а там регистры случаем в стеке не сохраняются?

загони в дизассемблер -- глянь что там VC навставлял..


Дата: Июл 12, 2004 14:51:39

void __declspec(naked) f(int i)
и не будет ниче сохраняться


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.103