Справочник по языку Ассемблера IBM PC

     

PUSH


(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 и команды , , , , , , , ,



Содержание раздела