Specifications
Intel
®
64 and IA-32 Architectures Software Developer’s Manual Documentation Changes 158
Documentation Changes
PUSH—Push Word, Doubleword or Quadword Onto the Stack
Opcode* Instruction Op/
En
64-Bit
Mode
Compat/
Leg Mode
Description
FF /6 PUSH r/m16 AValid Valid Push r/m16.
FF /6 PUSH r/m32 AN.E. Valid Push r/m32.
FF /6 PUSH r/m64 AValid N.E. Push r/m64. Default
operand size 64-bits.
50+rw PUSH r16 BValid Valid Push r16.
50+rd PUSH r32 BN.E. Valid Push r32.
50+rd PUSH r64 BValid N.E. Push r64. Default operand
size 64-bits.
6A PUSH imm8 C Valid Valid Push sign-extended imm8.
Stack pointer is
incremented by the size of
stack pointer.
68 PUSH imm16 C Valid Valid Push sign-extended imm16.
Stack pointer is
incremented by the size of
stack pointer.
68 PUSH imm32 C Valid Valid Push sign-extended imm32.
Stack pointer is
incremented by the size of
stack pointer.
0E PUSH CS D Invalid Valid Push CS.
16 PUSH SS D Invalid Valid Push SS.
1E PUSH DS D Invalid Valid Push DS.
06 PUSH ES D Invalid Valid Push ES.
0F A0 PUSH FS D Valid Valid Push FS and decrement
stack pointer by 16 bits.
0F A0 PUSH FS D N.E. Valid Push FS and decrement
stack pointer by 32 bits.
0F A0 PUSH FS D Valid N.E. Push FS. Default operand
size 64-bits. (66H override
causes 16-bit operation).
0F A8 PUSH GS D Valid Valid Push GS and decrement
stack pointer by 16 bits.
0F A8 PUSH GS D N.E. Valid Push GS and decrement
stack pointer by 32 bits.
0F A8 PUSH GS D Valid N.E. Push GS, default operand
size 64-bits. (66H override
causes 16-bit operation).
NOTES:
* See IA-32 Architecture Compatibility section below.