وو

وحید آنلاین . آرشیو وبلاگ وحیدمی دات آی آر . شرکت بیان. vahidmy.blog.ir

وو

وحید آنلاین . آرشیو وبلاگ وحیدمی دات آی آر . شرکت بیان. vahidmy.blog.ir

IRET

IRET

Usage:  IRET                                            Modifies flags: AF CF DF IF PF SF TF ZF

Returns control to point of interruption by popping (E)IP, CS and then the Flags from the stack and continues execution at this location.  

Return from Interrupt


IRET                          ; CF                   [8086]

IRETW                         ; o16 CF               [8086]

IRETD                         ; o32 CF               [386]


Returns  to a program or procedure that was interrupted by an exception, an external interrupt, or a software-generated interrupt. IRET returns from an interrupt (hardware or software) by means of popping IP (or EIP), CS and the flags off the stack and then continuing execution from the new CS:IP. CPU exception interrupts will return to the instruction that cause the exception because the CS:IP placed on the stack during the interrupt is the address of the offending instruction.


IRETW pops IP, CS and the flags as 2 bytes each, taking 6 bytes off the stack in total.


IRETD pops EIP as 4 bytes, pops a further 4 bytes of which the top two are discarded and the bottom two go into CS, and pops the flags as 4 bytes as well, taking 12 bytes off the stack.


IRET is a shorthand for either IRETW or IRETD, depending on the default BITS setting at the time.


Example:

iret