Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- iAPx86 - <b>push push operand on stack flags: not altered</b> http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
PUSH            Push Operand on Stack                Flags: Not altered

PUSH source

        Logic   eSP . eSP - n
                [SS:eSP] . source
                ; n = 2 if operand-size attribute is 16 bits, else 4

    If the operand-size attribute of the instruction is 16 bits, PUSH
    decrements the stack pointer by 2, otherwise by 4. Then the source
    operand is copied to the new top of stack which is pointed to by
    the stack pointer (SS:SP if stack address-size attribute is 16
    bits, SS:ESP if stack address-size attribute is 32 bits).

    The operand for PUSH must be a general register, a segment
    register, a memory operand, or (80186+) an immediate value. A full
    word/doubleword is pushed onto the stack even if the operand
    refers to a byte-sized value.


                Example:        push    [mem_op]
                                pop     [mem_op_copy]

    PUSH SP
    The 8086 and 80186 processors decrement the stack pointer before
    pushing it onto the stack with a PUSH SP instruction. The 80286 and
    later processors push the value of SP/ESP before it's decremented.


    Opcode      Format
    06          PUSH ES
    0E          PUSH CS
    0F A0       PUSH FS
    0F A8       PUSH GS
    16          PUSH SS
    1E          PUSH DS
    50+rw       PUSH r16
    50+rd       PUSH r32
    68          PUSH imm16
    68          PUSH imm32
    6A          PUSH imm8
    FF /6       PUSH m16
    FF /6       PUSH m32


    Length and timing
    Operands    Bytes   8088    186     286     386     486     Pentium
    reg          1      15      10       3       2       1       1   UV
    mem       2+d(0-2)  24+EA   16       5       5       4       2   NP
    seg          1      14       9       3       2       3       1   NP
    imm      1+i(1,2)    -       -       3       2       1       1   NP
    FS/GS        2       -       -       -       2       3       1   NP

See Also: PUSHA PUSHF POP POPA POPF ENTER

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson