A.5.264 PUSHAx: Push All General-Purpose Registers
PUSHA ; 60 [186]
PUSHAD ; o32 60 [386]
PUSHAW ; o16 60 [186]
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 section A.2.1).
See also POPA (section A.5.245).