(PUSH All general registers onto stack)
Размещение всех регистров общего назначения в стеке
Назначение: размещение в стеке регистров общего назначения в следующей последовательности: ax, cx, dx, bx, sp, bp, si, di.
Синтаксис
Алгоритм работы:
- уменьшить значение указателя стека esp/sp на 32/16 (в зависимости от значения атрибута размера адреса — use16 или use32);
- включить в стек последовательно значения регистров общего назначения ax, cx, dx, bx, sp, bp, si, di.
Содержимое di при этом будет на вершине стека. В стек помещается содержимое sp по состоянию до выполнения команды.
Состояние флагов после выполнения команды:
выполнение команды не влияет на флаги
|
Применение:
Команда pusha используется совместно с командой popa для сохранения и восстановления всех регистров общего назначения. Эти команды удобно использовать при работе с процедурами, программами обработки прерываний, а также в других случаях для сохранения и восстановления регистров общего назначения как части контекста некоторого вычислительного процесса.
my_proc proc near pusha;тело процедуры, в которой изменяется;содержимое регистров общего назначения... popa ret endp |
См. также: уроки 7, 10, 14, 15, 16, 17 и команды pop, popad, popf, popfd, push, popa, pushad, pushf, pushfd