(PUSH operand onto stack)
Размещение операнда в стеке
Схема команды:
| push источник
|
Назначение: размещение содержимого операнда источник в стеке.
Синтаксис
Алгоритм работы:
- уменьшить значение указателя стека esp/sp на 4/2 (в зависимости от значения атрибута размера адреса — use16 или use32);
- записать источник в вершину стека (адресуемую парой ss:esp/sp).
Состояние флагов после выполнения команды:
выполнение команды не влияет на флаги
|
Применение:
Команда push используется совместно с командой pop для записи значений в стек и извлечения их из стека. Размер записываемых значений — слово или двойное слово. Также в стек можно записывать непосредственные значения. Заметьте, что в отличие от команды pop в стек можно включать значение сегментного регистра cs. Другой интересный момент связан с регистром sp. Команда push esp/sp записывает в стек значение esp/sp по состоянию до выдачи этой команды. В микропроцессоре i8086 по этой команде записывалось скорректированное значение sp. При записи в стек 8-битных значений для них все равно выделяется слово или двойное слово (в зависимости от use16 или use32).
my_proc proc near push ax push bx;тело процедуры, в которой изменяется содержимое;регистров ax и bx... pop bx pop ax ret endp |
См. также: уроки 7, 10, 14, 15, 16, 17 и команды pop, popa, popad, popf, popfd, pusha, pushad, pushf, pushfd