Intel 64 and IA-32 Architectures Software Developers Manual Volume 2B, Instruction Set Reference, N-Z
4-212 Vol. 2B
INSTRUCTION SET REFERENCE, N-Z
PUSH—Push Word, Doubleword or Quadword Onto the Stack
Opcode* Instruction
64-Bit
Mode
Compat/
Leg Mode Description
FF /6 PUSH r/m16 Valid Valid Push r/m16.
FF /6 PUSH r/m32 N.E. Valid Push r/m32.
FF /6 PUSH r/m64 Valid N.E. Push r/m64. Default operand size
64-bits.
50+rw PUSH r16 Valid Valid Push r16.
50+rd PUSH r32 N.E. Valid Push r32.
50+rd PUSH r64 Valid N.E. Push r64. Default operand size
64-bits.
6A PUSH imm8 Valid Valid Push sign-extended imm8. Stack
pointer is incremented by the size
of stack pointer.
68 PUSH imm16 Valid Valid Push sign-extended imm16. Stack
pointer is incremented by the size
of stack pointer.
68 PUSH imm32 Valid Valid Push sign-extended imm32. Stack
pointer is incremented by the size
of stack pointer.
0E PUSH CS Invalid Valid Push CS.
16 PUSH SS Invalid Valid Push SS.
1E PUSH DS Invalid Valid Push DS.
06 PUSH ES Invalid Valid Push ES.
0F A0 PUSH FS Valid Valid Push FS and decrement stack
pointer by 16 bits.
0F A0 PUSH FS N.E. Valid Push FS and decrement stack
pointer by 32 bits.
0F A0 PUSH FS Valid N.E. Push FS. Default operand size
64-bits. (66H override causes 16-
bit operation).
0F A8 PUSH GS Valid Valid Push GS and decrement stack
pointer by 16 bits.
0F A8 PUSH GS N.E. Valid Push GS and decrement stack
pointer by 32 bits.
0F A8 PUSH GS Valid N.E. Push GS, default operand size
64-bits. (66H override causes 16-
bit operation).
NOTES:
* See IA-32 Architecture Compatibility section below.