| 
 |  | 
                             Push Word onto Stack                             
  
    | 
       86/88  | 
    
       Y  | 
    
       186  | 
    
       Y  | 
    
       286  | 
    
       Y  | 
    
       386  | 
    
       Y  | 
    
       486  | 
    
       Y  | 
    
       PUSH source  | 
   
  
    | 
       Ovfl  | 
    
       N  | 
    
       Dir  | 
    
       N  | 
    
       Int  | 
    
       N  | 
    
       Trap  | 
    
       N  | 
    
       Sign  | 
    
       N  | 
    
       Zero  | 
    
       N  | 
    
       Aux  | 
    
       N  | 
    
       Prty  | 
    
       N  | 
    
       Carry  | 
    
       N  | 
   
     PUSH decrements SP by 2, then copies the operand to the new top of
    stack. The source of a PUSH instruction cannot be an 8-bit register.
       Notes:         Even if the source refers to a byte in memory, a
                      full word is always pushed.
                      The 80286 and 80386 microprocessors will push a
                      different value on the stack for the instruction
                      PUSH SP than will the 8086/8088.  The 80286 and
                      80386 push the value of SP before SP is incremented,
                      while the 8086/8088 increments SP first, then pushes
                      SP on the stack.  Use the following code instead of
                      a PUSH SP in order to obtain the same results on all
                      microprocessors.
                                  PUSH    BP
                                  MOV     BP, SP
                                  XCHG    BP, [BP]
                      This code functions in the same manner as a PUSH SP
                      on the 8088/8086.
------------------------------------ Timing ----------------------------------
OpCode          Instruction             386     286     86
FF/6            PUSH m16                5       5       16+EA
FF/6            PUSH m32                5
50+/r           PUSH r16                2       3       11
50+/r           PUSH r32                2
6A              PUSH imm8               2       3
68              PUSH imm16              2       3
68              PUSH imm32              2
0E              PUSH CS                 2       3       10
16              PUSH SS                 2       3       10
1E              PUSH DS                 2       3       10
06              PUSH ES                 2       3       10
0F A0           PUSH FS                 2
0F A8           PUSH GS                 2
------------------------------------ Logic -----------------------------------
        SP = SP - 2
        (SP) = source
See Also POP PUSHA POPA PUSHF POPF MOV XCHG |