PUSHAW pushes, in succession, AX, CX, DX, BX,
SP, BP, SI and DI on the stack, decrementing the
stack pointer by a total of 16.
PUSHAD pushes, in succession, EAX, ECX, EDX,
EBX, ESP, EBP, ESI and EDI on the stack,
decrementing the stack pointer by a total of 32.
In both cases, the value of SP or ESP pushed is its
original value, as it had before the instruction was executed.
PUSHA is an alias mnemonic for either PUSHAW or PUSHAD,
depending on the current BITS setting.
Note that the registers are pushed in order of their numeric values in opcodes (see the register values).
See also POPA (POPA).