IDIV - Signed Integer Division
Usage: IDIV src
Modifie les Flags suivants: (AF,CF,OF,PF,SF,ZF indéfini)
Division binaire signée de l'accumulateur par la source. Si la source est de type Byte , AX est divisé par la source , le quotient est placé dans AL et le reste dans AH. Si la source est une valeur de type WORD, DX:AX est alors divisé par la source et le quotient est rangé dans AL et le reste dans DX.
Horloges | ||||
---|---|---|---|---|
opérandes | 286 | 386 | 486 | Taille en Bytes |
reg8 | 17 | 19 | 19 | 2 |
reg16 | 25 | 27 | 27 | 2 |
reg32 | 43 | 43 | 2 | |
mem8 | 20 | 22 | 20 | 2-4 |
mem16 | 38 | 30 | 28 | 2-4 |
mem32 | 46 | 44 | 2-4 |
IMUL - Signed Multiply
Usage: IMUL src
IMUL src,immed (286+)
IMUL dest,src,immed8 (286+)
IMUL dest,src (386+)
Modifie les Flags suivants: CF OF (AF,PF,SF,ZF indefini4)
Multiplication signée de l'accumulateur par la source avec le résultat placé dans le registre acumulateur. Si l'opérande source est une valeur de type byte, elle est multipliée parAL et le résultat est rangé dans AX. Si l'opérande source est une valeur de type WORD, elle est multipliée par AX et le résultat est stocké dans DX:AX.
Horloges | ||||
---|---|---|---|---|
opérandes | 286 | 386 | 486 | Taille en Bytes |
reg8 | 13 | 9-14 | 13-18 | 2 |
reg16 | 21 | 9-22 | 13-26 | 2 |
reg32 | 9-38 | 12-42 | 2 | |
mem8 | 16 | 12-17 | 13-18 | 2-4 |
mem16 | 24 | 12-25 | 13-26 | 2-4 |
mem32 | 12-41 | 13-42 | 2-4 | |
reg16,reg16 | 9-22 | 13-26 | 3-5 | |
reg32,reg32 | 9-38 | 13-42 | 3-5 | |
reg16,mem16 | 12-25 | 13-26 | 3-5 | |
reg16,immed | 21 | 9-22 | 13-26 | 3 |
reg32,immed | 21 | 9-38 | 13-42 | 3-6 |
reg16,reg16,immed | 2 | 9-22 | 13-26 | 3-6 |
reg32,reg32,immed | 21 | 9-38 | 13-42 | 3-6 |
reg16,mem16,immed | 24 | 12-25 | 13-26 | 3-6 |
reg32,mem32,immed | 24 | 12-41 | 13-42 | 3-6 |
IN - Input Byte or Word From Port
Usage: IN accum,port
Modifie les Flags suivants: aucun(e)
Un byte, word ou dword est lu depuis un PORT et placé dans AL,AX et EAX respectivement. Si le numéro de PORT est inclus dans les valeurs allant de 0 à 255, il peut être considéré comme immédiat, sinon le Numéro de PORT doit être spécifié dans DX. Les numéros de PORT valides d'un PC sont contenus entre les valeurs allant de 0 à 1024 , bien que les valeurs passant par 65535 peuvent être reconnues par les PS/2.
Horloges | ||||
---|---|---|---|---|
opérandes | 286 | 386 | 486 | Taille en Bytes |
accum,immed8 | 5 | 12 | 14 | 2 |
accum,immed8 (PM) | 6/26 | 8/28/27 | 2 | |
accum,DX | 5 | 13 | 14 | 1 |
accum,DX (PM) | 7/27 | 8/28/27 | 1 | |
Le mode virtuel 486 requiert toujours 27 cycles d'horloges. |
INC - Increment
Usage: INC dest
Modifie les Flags suivants: AF OF PF SF ZF
Additionne un à l'opérande binaire non signé de destination.
Horloges | ||||
---|---|---|---|---|
opérandes | 286 | 386 | 486 | Taille en Bytes |
reg8 | 2 | 2 | 1 | 2 |
reg16 | 2 | 2 | 1 | 1 |
reg32 | 2 | 2 | 1 | 1 |
mem | 7 | 6 | 3 | 2-4 |
INS - Input String from Port (80188+)
Usage: INS dest,port
INSB
INSW
INSD (386+)
Modifie les Flags suivants: Aucun(e)
Charge des DATA du port vers la destination ES:(E)DI . (E)DI est ajustée par la taille de l'opérande et incrémenté si le Flag DIRECTION FLAG est éffacé et décrémenté si le Flag DIRECTION FLAG est posé. Pour les instructions INSB, INSW, INSD , aucunes opérandes ne sont permises et la taille est déterminé par le mnemonic.
Horloges | ||||
---|---|---|---|---|
opérandes | 286 | 386 | 486 | Taille en Bytes |
dest,port | 15 | 7 | 1 | 1 |
dest,port (PM) | 5 | 9/29 | 10/32/30 | 1 |
none | 5 | 15 | 17 | 1 |
none (PM) | 5 | 9/29 | 10/32/30 | 1 |
INT - Interrupt
Usage: INT num
Modifie les Flags suivants: TF IF
Démarre une intérruption logicielle en "pushant" les drapeaux (flags) en effacant les Flags TP (Trap Flag) et IP (Interrupt Flag), en "pushant" CS , suivi par IP et charge finalement CS:IP avec la valeur trouvée dans la table des vecteurs d'interruption. Ensuite commence l'éxécution à l'adresse pointé par le nouveau CS:IP.
Horloges | ||||
---|---|---|---|---|
opérandes | 286 | 386 | 486 | Taille en Bytes |
3 (constant) | 23+m | 33 | 26 | 2 |
3 (prot. mode, same priv.) | 40+m | 59 | 44 | 2 |
3 (prot. mode, more priv.) | 78+m | 99 | 71 | 2 |
3 (from VM86 to PL 0) | 119 | 82 | 2 | |
3 (prot. mode via task gate) | 167+m | TS | 37+TS | 2 |
immed8 | 23+m | 37 | 30 | 1 |
immed8 (prot. mode, same priv.) | 40+m | 59 | 44 | 1 |
immed8 (prot. mode, more priv.) | 78+m | 99 | 71 | 1 |
immed8 (from VM86 to PL 0) | 119 | 86 | 1 | |
immed8 (prot. mode, via task gate) | 167+m | TS | 37+TS | 1 |
INTO - Interrupt on Overflow
Usage: INTO
Modifie les Flags suivants: IF TF
Si le Flag Overflow ( Débordement) est posé, cette instruction génère une intérruption 4, laquelle permet au code adressé par 0000:0010 d'être éxécuté.
Horloges | ||||
---|---|---|---|---|
opérandes | 286 | 386 | 486 | Taille en Bytes |
aucun: saut | 24+m | 35 | 28 | 1 |
aucun: pas de saut | 3 | 3 | 3 | 1 |
aucun: (mode prot.,même priv.) | 59 | 46 | 1 | |
none: (mode prot.,même priv.) | 99 | 73 | 1 | |
none: (from VM86 to PL 0) | 84 | 119 | 1 | |
none: (prot. mode, via task gate) | TS | 39+TS | 1 |
INVD - Invalidate Cache (486+)
Usage: INVD
Modifie les Flags suivants: Aucun(e)
Mélange la cache interne du CPU.
Horloges | ||||
---|---|---|---|---|
opérandes | 286 | 386 | 486 | Taille en Bytes |
aucun(e) | 4 | 2 |
INVLPG - Invalidate Translation Look-Aside Buffer Entry (486+)
Usage: INVLPG
Modifie les Flags suivants: Aucun(e)
Rend nul le début de table dans la traduction Look-Aside Buffer. ( littéralement Regarde à part du tampon ). Intel averti que cette instrcution peut être implémenté différemment sur les futurs processeurs.
Horloges | ||||
---|---|---|---|---|
opérandes | 286 | 386 | 486 | Taille en Bytes |
aucun(e) | 12 | 2 | ||
IRET/IRETD - Interrupt Return
Usage: IRET
IRETD (386+)
Modifie les Flags suivants: AF CF DF IF PF SF TF ZF
Retourne le contrôle d'une procédure d'interruption vers un code d'interruption. En mode réel, l'instruction IRET "pops" IP,CS et les Flags ( Drapeaux ) et retourne à l'éxécution. Sur le 80386, l'instruction IRETD doit être utilisée pour "poper" un pointeur d'instruction 32 bitlorque l'on revient d'une interruption appelée d'un segment 32 bit.
Horloges | ||||
---|---|---|---|---|
opérandes | 286 | 386 | 486 | Taille en Bytes |
(iret)aucun(e) | 17+m | 22 | 15 | 1 |
(prot. mode) | 31+m | 38 | 15 | 1 |
(to less privilege) | 55+m | 82 | 36 | 1 |
(different task, NT=1) | 169+m | TS | TS+32 | 1 |
(iretd) | 22/38 | 15 | 1 | |
(to less privilege) | 82 | 36 | 1 | |
(to VM86 mode) | 60 | 15 | 1 | |
iretd (different task, NT=1) | TS | TS+32 | 1 | |