Assembly Language Help (alang.hlp) (Table of Contents; Topic list)
PUSHA/POPA Instructions
 Detail Key Example                    Up Contents Index Back
────────────────────────────────────────────────────────────────────────────
 
  Title:    Push or Pop All                       Flags: O D I T S Z A P C
            80186-80486 Only                             ═════════════════
                                                              -none-
  Syntax:   PUSHA
            PUSHAW
            PUSHAD
            POPA
            POPAW
            POPAD
 
  See also: .186, PUSH, POP
 
  Description:
 
     PUSHA pushes the eight general-purpose registers onto the stack.
     The registers are pushed in the following order: AX, CX, DX, BX,
     SP, BP, SI, DI. The value pushed for SP is the value before the
     instruction.
 
     POPA pops the top 16 bytes on the stack into the eight general-
     purpose registers. The registers are popped in the following
     order: DI, SI, BP, SP, BX, DX, CX, AX. The value for the SP
     register is actually discarded rather than copied to SP.
 
     The behavior of PUSHA and POPA depend on the code segment
     they are used in. They work on 16-bit registers in 16-bit segments and
     32-bit registers in 32-bit segments. PUSHAW and POPAW always
     work on 16-bit registers. PUSHAD and POPAD always work on
     32-bit registers (80386/486 only).
                                    -♦-