ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
В качестве операнда должен указываться общий размер (в байтах) всех параметров, помещенных в стек.Действие команды pop EIP; вернуться в исходную точку add ESP, число; выровнять стек на «число» байт Набор соглашений по вызову функций в Win32 API называется STDCALL Пример. Вычисление среднего двух чисел с использованием соглашения STDCALL Push B Push A Call Srednee Mov C,eax Srednee: mov eax,[esp+8] add eax,[esp+4] Cdq Mov ebx,2 Idiv ebx Ret 8 Одним из часто используемым применением стека является хранение локальных переменных, для чего в стеке организуется окно (кадр) локальных переменных. Если обращаться к локальным переменным с помощью регистра ESP, требуется пересчитывать смещения параметров и переменных при любом его изменении. В таких случаях используется регистр EBP – указатель кадра стека, значение которого остается неизменным. Следовательно, смещения параметров и переменных также фиксируются. Типичный пролог в подпрограмме: Push ebp; сохраняем исходное значение ebp Mov ebp,esp; фиксируем текущий указатель sub esp, размер; делаем «окно» заданного размера В результате получаем следующую конфигурацию стека: Содержимое стека: [EBP] – исходное значение EBP [EBP+4] – адрес точки возврата [EBP+8] – первый параметр [EBP+12] – второй параметр ... [EBP–4] – первая переменная [EBP–8] – вторая переменная ... Типичный эпилог в подпрограмме: mov esp,ebp; удаляем «окно» в стеке Не нашли, что искали? Воспользуйтесь поиском:
|