Инструкция POPAВосстанавливает все регистры общего назначения из стека. Эта инструкция поддерживается начиная с архитектуры 186 и 286C.
POPA - Восстанавливает все регистры общего назначения из стека.
Восстанавливает из стека в регистры общего назначения. Регистры загружаются в следующем порядке: DI, SI, BP, BX, DX, CX и AX. Значение в стеке для регистра SP игнорируется. Вместо этого после загрузки каждого регистра, регистр SP увеличивается на единицу.
В следующем примере мы напишем функцию которая внутри себя изменяет состояние регистров
ax и
bx. После выхода из функции изначальное значение регистров будет восстановлено.
- title Автор: Довгополов Евгений Сергеевич
- .286C
- .model small
- .stack 100h
- code segment public
- ____assume cs:code
- ____main proc
- ________mov_____ax, 10
- ________mov_____bx, 20
- ________call____function
- ________mov_____ax, 4C00h
- ________int_____21h
- ____main endp
- ____function proc
- ________pusha
- ________xor_____ax, ax
- ________xor_____bx, bx
- ________popa
- ________ret
- ____function endp
- code ends
- end main