PUSHA           Push All General Registers           Flags: Not altered

PUSHA CPU: 186+
PUSHAD CPU: 386+

Logic PUSH eAX
PUSH eCX
PUSH eDX
PUSH eBX
PUSH eSP ; SP/ESP before PUSHA
PUSH eBP
PUSH eSI
PUSH eDI

PUSHA saves the eight general registers on the stack. Note that
the value pushed for SP/ESP is the original value. The order of
the registers pushed is correct for a subsequent POPA.

PUSHAD is the 32-bit form of PUSHA.


Note
Some assemblers support a PUSHA extension (PUSHAW) that forces 8
16-bit word-style push'es regardless of the code segment's size
attribute (80386+).


Opcode Format
60 PUSHA
60 PUSHAD


Length and timing
Variations Bytes 8088 186 286 386 486 Pentium
pusha 1 36 17 18 11 5 NP
pushad 1 - - 18 11 5 NP