Section courante

A propos

Section administrative du site

Introduction

Le microprocesseur Pentium Pro est une version encore plus rapide du Pentium. Il est cadencé à des vitesses de 150, 166 et 200 Mhz. Il contient une architecture P6 (de sixième génération) interne modifiée pouvant planifier jusqu'à 5 instructions d'exécution simultané et une unité mathématique de nombre réels (à virgule flottante) encore plus rapide. Le Pentium Pro contient également un cache de niveau 2 de 256 Ko ou 512 Ko en plus du cache de niveau 1 de 16 Ko (8 Ko pour les données et 8 Ko pour les instructions). Le Pentium Pro comprend des circuits de correction d'erreur (ECC), permettant de corriger une erreur d'un bit et d'indiquer une erreur de 2 bits. Quatre lignes d'adresses supplémentaires ont également été ajoutées, permettant ainsi au Pentium Pro d'accéder à un nombre de 64 Go d'espace mémoire directement adressable. Les caractéristiques du microprocesseur Pentium Pro sorti en 1995, en font un candidat idéale pour des systèmes d'exploitation 32 bits comme OS/2 et Windows NT sortie à cette date mais il n'est pas très efficace sur l'environnement graphique Windows 3.1. De plus, les compilateurs assembleurs comme MASM utilise la directive assembleur .686 ou .686P pour indiquer qu'il s'agit d'instructions Pentium Pro.

Les instructions

Voici la liste des instructions reconnus par le Pentium Pro :

Instruction Signification Description
AAA ASCII adjust AL after addition Cette instruction permet d'adapter le résultat obtenu par l'addition de 2 valeur en format DCB.
AAD ASCII adjust AX before division Cette instruction permet de convertir une valeur de format DCB non compactée.
AAM ASCII adjust AX after multiplication Cette instruction offre la possibilité de convertir le produit de la multiplication de 2 valeurs de format DCB en un format DCB.
AAS ASCII adjust AL after subtraction Cette instruction permet d'adapter le résultat de la soustraction de nombre de format DCB.
ADC Add with carry Cette instruction additionne 2 quantités numériques sur 8 ou 16 bits et ajoute ensuite la valeur de l'indicateur de retenue, lequel est contenu dans le drapeau CF(CARRY FLAG), à la somme obtenu.
ADD Add Cette instruction additionne 2 quantités numérique sur 8, 16 ou 32 bits.
AND And Cette instruction permet d'effectuer un ET BINAIRE sur les 2 opérandes spécifiés.
ARPL Adjust RPL field of selector Cette instruction permet de contrôler et corriger le niveau de privilège du segment de code en mode protégée.
BOUND Bounds Cette instruction permet de vérifier la validité pouvant exister entre avec un tableau et son indexation.
BSF Bit scan forward Cette instruction permet d'effectuer une comparaison binaire de la droite vers la gauche.
BSR Bit scan reverse Cette instruction permet d'effectuer une comparaison binaire de la gauche vers la droite.
BSWAP Byte Swap Cette instruction permet d'inverse l'ordre des 4 octets d'un registre de taille de 32 bits.
BT Bit test Cette instruction permet de transférer une Opérande vers l'indicateur de retenue.
BTC Bit test and complement Cette instruction transfère une Opérande vers l'indicateur de retenue le bits spécifié et inverser la valeur du bit correspondant.
BTR Bit test and reset Cette instruction permet de transférer l'Opérande vers l'indicateur de retenue le bits spécifié puis met le bits correspondant de l'Opérande à 0.
BTS Bit test and set Cette instruction permet de transférer une Opérande vers l'indicateur de retenue le bits spécifié puis ensuite met le bits correspondant dans Opérande à 1.
CALL Call procedure Cette instruction force le microprocesseur à exécuter les instructions du sous-programme indiqué par l'adresse d'appel avant de continuer.
CBW Convert byte to word Cette instruction permet de convertir un nombre contenu dans le registre AL en un format sur 16 bits pour se retrouver dans le registre AX en appliquant une extension du signe.
CDQ Convert double-word to quad-word Cette instruction permet de convertir le double mot en un quadruple mot, le résultat tient sur une taille de 64 bits.
CLC Clear carry flag Cette instruction permet de mettre l'indicateur d'état de retenu CF à 0.
CLD Clear direction flag Cette instruction met l'indicateur d'état DF à 0, soit la direction croissante.
CLI Clear interrupt flag Cette instruction met l'indicateur d'état IF à 0, soit l'interdiction des interruptions.
CLTS Clear task-switched flag in register CR0 Cette instruction permet de mettre à 0 le drapeau de l'indicateur de tâche (Task-Switch) du registre CR0.
CMC Complement carry flag Cette instruction offre la possibilité d'inverser la valeur de l'indicateur de retenue. Si ce dernier vaut 1, elle le met à 0 et inversement.
CMOV Conditionnel MOVe Cette instruction copie des données d'une source (valeur) à une destination (registre) à la condition que la condition demandé soit remplie.
CMP Compare operands Cette instruction offre la possibilité essentielle de comparer 2 registres ou emplacements de mémoire.
CMPS Compare String Cette instruction permet d'effectuer la comparaison d'un octet, d'un mot ou double mot spécifié avec l'opérande source et destination spécifié et fixe l'état des drapeaux du registres EFLAGS en fonction des résultats de la comparaison.
CMPSB Compare String Byte Cette instruction permet d'effectuer la comparaison d'un octet avec l'opérande source (DS:(R)SI) et destination (ES:(R)DI) et fixe l'état des drapeaux du registres EFLAGS en fonction des résultats de la comparaison.
CMPSD Compare string double-word Cette instruction permet d'effectuer la comparaison d'un double mot avec l'opérande source (DS:(R)SI) et destination (ES:(R)DI) et fixe l'état des drapeaux du registres EFLAGS en fonction des résultats de la comparaison.
CMPSW Compare String Word Cette instruction permet d'effectuer la comparaison d'un mot avec l'opérande source (DS:(R)SI) et destination (ES:(R)DI) et fixe l'état des drapeaux du registres EFLAGS en fonction des résultats de la comparaison.
CMPXCHG CoMPare and eXCHanGe Cette instruction compare la destination avec l'accumulateur (AL, AX ou EAX) et les échanges si la condition est vrai.
CMPXCHG8B CoMPare and eXCHanGe 8 bytes Cette instruction compare un nombre de 64 bits et les échanges si la condition est vrai.
CPUID CPU IDentification Cette instruction retourne le code d'identification du microprocesseur.
CWD Convert word to doubleword Cette instruction est l'alternative pour convertir le mot du registre AX en un double mot contenu dans le couple de registre DX et AX par extension du signe.
CWDE Compare string double-word Cette instruction est l'alternative pour convertir le mot du registre AX en un double mot contenu dans le registre EAX par extension du signe.
DAA Decimal adjust AL after addition Cette instruction corrige après coup les retenues lors de la manipulation de valeur DCB.
DAS Decimal adjust AL after subtraction Cette instruction offre l'intéressante possibilité de corrige le résultat d'une soustraction de 2 nombres de format DCB compactées.
DEC Decrement by 1 Cette instruction décrément de 1 le registre ou l'adresse mémoire spécifié.
DIV Unsigned divide Cette instruction permet d'effectuer une division non-signée (nombre naturel).
EMMS Empty MMX State Cette instruction fixe les mots marqués du MPU de chacun un.
ENTER Enter stack frame Cette instruction permet de créer les structures de paramètres nécessaires aux procédures des langages de haut niveau.
ESC Escape Cette instruction active le coprocesseur, lequel se permettra d'utiliser les méthodes d'adressage du processeur principal (CPU).
FCOMI Compare Real and Set EFLAGS Cette instruction permet d'effectuer la comparaison de ST(0) avec ST(i) et fixe la valeur drapeaux ZF, PF et CF du registre EFLAGS en fonction des résultats.
FCOMIP Compare Real and Set EFLAGS Cette instruction permet d'effectuer la comparaison de ST(0) avec ST(i) et fixe la valeur drapeaux ZF, PF et CF du registre EFLAGS en fonction des résultats et désempile de la pile la valeur dans le registre.
FUCOMI Compare Real and Set EFLAGS Cette instruction permet d'effectuer la comparaison de ST(0) avec ST(i) et vérifie l'ordre des valeurs et fixe la valeur drapeaux ZF, PF et CF du registre EFLAGS en fonction des résultats.
FUCOMIP Compare Real and Set EFLAGS Cette instruction permet d'effectuer la comparaison de ST(0) avec ST(i) et vérifie l'ordre des valeurs et fixe la valeur drapeaux ZF, PF et CF du registre EFLAGS en fonction des résultats et désempile de la pile la valeur dans le registre.
FCMOV Float Conditionnel Move Cette instruction permet de déplacé des nombres réel (virgule flottante) si la condition en question est satisfaite.
HLT Halt Cette instruction permet de faire passer le microprocesseur en mode d'arrêt. Toutefois, le processeur peut quitter cet état lorsqu'une ligne matérielle RESET ou lorsqu'une interruption non-masquable (NMI) reçoit un signal.
IDIV Integer divide Cette instruction permet d'effectuer une division signée (nombre entier).
IMUL Integer multiply Cette instruction permet d'effectuer une multiplication signée (nombre entier).
IN Input from port Cette instruction permet de demander un octet, un mot ou un double mot provenant du port d'entrée/sortie et le retourne dans le registre accumulateur (AL, AX, EAX).
INC Increment by 1 Cette instruction permet d'incrémenter un registre ou un emplacement mémoire.
INS Input from port to string Cette instruction permet de demander un octet, un mot ou un double mot du port d'entrée/sortie et retourne le résultat dans l'adresse ES:[DI] et incrémente/décrémente le registre DI en fonction de la taille de l'opérande cible et de l'état du drapeau de direction.
INSB Input from port to string Byte Cette instruction permet de demander un octet du port d'entrée/sortie et retourne le résultat dans l'adresse ES:[DI] et incrémente/décrémente le registre DI de 1 en fonction de l'état du drapeau de direction.
INSD Input from port to string double-word Cette instruction permet de demander un double mot du port d'entrée/sortie et retourne le résultat dans l'adresse ES:[DI] et incrémente/décrémente le registre DI de 4 en fonction de l'état du drapeau de direction.
INSW Input from port to string Word Cette instruction permet de demander un mot du port d'entrée/sortie et retourne le résultat dans l'adresse ES:[DI] et incrémente/décrémente le registre DI de 2 en fonction de l'état du drapeau de direction.
INT Interrupt Cette instruction permet d'exécuter l'interruption avec le numéro spécifié.
INTO Interrupt if overflow Cette instruction permet d'exécuter l'interruption numéro 4 si le drapeau de débordement (OF) est fixé sur 1é
INVD Invalidate Internal Caches Cette instruction permet de désactiver et de vider le tampon interne du micro-processeur.
INVLPG Invalidate TLB Entry Cette instruction permet d'invalider les transferts du TLB (Translation Lookaside Buffer) du micro-processeur
IRET Return from interrupt Cette instruction permet d'effectuer un retour précédemment provoquer par une interruption.
IRETD Interrupt Return Doubleword Cette instruction permet d'effectuer un retour 32-bits précédemment provoquer par une interruption.
Jcc Jump if condition Ces instructions permettent d'effectuer d'effectuer un branchement conditionnel à emplacement mémoire spécifié.
JECXZ Jump if register ECX is zero Ces instructions permettent d'effectuer d'effectuer un branchement conditionnel à emplacement mémoire spécifié si le registre ECX vaut 0.
JMP Jump Cette instruction permet d'effectuer un branchement à un emplacement mémoire spécifié.
LAHF Load flags into AH register Cette instruction permet de transférer les bits d'indicateurs du registre d'état vers le registre AH.
LAR Load access rights byte Cette instruction permet de charger le registre des indicateurs d'un descripteur.
LDS Load pointer using DS Cette instruction permet de copier une adresse de mémoire contenu sur 32 bits dans la paire de registre de segment DS et dans un registre d'offset spécifié.
LEA Load Effective Address Cette instruction permet de copier l'offset d'une adresse de mémoire contenu dans un registre spécifié.
LEAVE Leave stack frame Cette instruction permet de libérer une zone de mémoire attribué par l'instruction «ENTER» lorsqu'on utilise des procédures dans des langages de programmation de haut niveau.
LES Load ES with pointer Cette instruction permet de copier une adresse de mémoire contenu sur 32 bits dans la paire de registre de segment ES et dans un registre d'offset spécifié.
LFS Load pointer using FS Cette instruction permet de copier une adresse de mémoire contenu sur 32 bits dans la paire de registre de segment FS et dans un registre d'offset spécifié.
LGDT Load global descriptor table Cette instruction permet de charger un descripteur de tables globale.
LGS Load pointer using GS Cette instruction permet de copier une adresse de mémoire contenu sur 32 bits dans la paire de registre de segment GS et dans un registre d'offset spécifié.
LIDT Load interrupt descriptor table Cette instruction permet de charger un descripteur de tables d'interruption.
LLDT Load local descriptor table Cette instruction permet de charger un descripteur de tables local.
LMSW Load machine status word Cette instruction permet de copier 4 des bits d'une opérande vers les 4 bits de registre de contrôle CR0.
LOADALL Load all CPU registers Cette instruction permet d'effectuer le chargement de tous les registres de descripteur de cache.
LOCK Assert BUS LOCK# signal Cette instruction est utilisé comme préfixe avec d'autres instructions pour amener le microprocesseur à émettre un signal de verrouillage (Lock) sur le bus lors du traitement de l'instruction suivante.
LODS Load String Cette instruction permet de copier un élément de l'adresse DS:SI dans le registre accumulateur et incrémente/décrémente le registre SI en fonction de la taille de l'opérande source et de l'état du drapeau de direction.
LODSB Load String Byte Cette instruction permet de copier un élément de l'adresse DS:SI dans le registre accumulateur et incrémente/décrémente le registre SI de 1 en fonction de l'état du drapeau de direction.
LODSD Load String Doubleword Cette instruction permet de copier un élément de l'adresse DS:SI dans le registre accumulateur et incrémente/décrémente le registre SI de 4 en fonction de l'état du drapeau de direction.
LODSW Load String Word Cette instruction permet de copier un élément de l'adresse DS:SI dans le registre accumulateur et incrémente/décrémente le registre SI de 2 en fonction de l'état du drapeau de direction.
LOOP Loop Cette instruction de boucle permet de décrémenter le registre CX (compteur de boucle) de 1 et par la suite de donner le contrôle à une étiquette destinataire tant que le registre CX ne vaut pas 0.
LOOPD Loop Double Cette instruction de boucle permet de décrémenter le registre ECX (compteur de boucle) de 1 et par la suite de donner le contrôle à une étiquette destinataire tant que le registre ECX ne vaut pas 0.
LOOPE Loop equal Cette instruction de boucle permet de décrémenter le registre CX (compteur de boucle) de 1 et par la suite de donner le contrôle à une étiquette destinataire tant que le registre CX ne vaut pas 0 et si le drapeau ZF vaut 1.
LOOPED Loop Equal Double Cette instruction de boucle permet de décrémenter le registre ECX (compteur de boucle) de 1 et par la suite de donner le contrôle à une étiquette destinataire tant que le registre ECX ne vaut pas 0 et si le drapeau ZF vaut 1.
LOOPNE Loop not equal Cette instruction de boucle permet de décrémenter le registre CX (compteur de boucle) de 1 et par la suite de donner le contrôle à une étiquette destinataire tant que le registre CX ne vaut pas 0 et si le drapeau ZF vaut 0.
LOOPNED Loop Not Equal Double Cette instruction de boucle permet de décrémenter le registre ECX (compteur de boucle) de 1 et par la suite de donner le contrôle à une étiquette destinataire tant que le registre ECX ne vaut pas 0 et si le drapeau ZF vaut 0.
LOOPNZD Loop Not Zero Double Cette instruction de boucle permet de décrémenter le registre ECX (compteur de boucle) de 1 et par la suite de donner le contrôle à une étiquette destinataire tant que le registre ECX ne vaut pas 0 et si le drapeau ZF vaut 0.
LOOPZD Loop Zero Double Cette instruction de boucle permet de décrémenter le registre ECX (compteur de boucle) de 1 et par la suite de donner le contrôle à une étiquette destinataire tant que le registre ECX ne vaut pas 0 et si le drapeau ZF vaut 1.
LSL Load segment limit Cette instruction permet de charger la limite de segment d'un descripteur de segment spécifié avec l'opérande source dans l'opérande de destination et fixe le drapeau ZF du registre EFLAGS.
LSS Load pointer using SS Cette instruction permet de copier une adresse de mémoire contenu sur 32 bits dans la paire de registre de segment SS (Segment de pile) et dans un registre d'offset spécifié.
LTR Load task register Cette instruction permet de charger l'opérande source dans le champ du sélecteur de segment du registre de tâche.
MOV Move Cette instruction permet de copier opérande source dans une opérande destinataire.
MOVD Move Doubleword Cette instruction permet de copier l'opérande dans un registre XMM ou vice-versa.
MOVQ Move Quadword Cette instruction permet de copier un quadruple mot d'une opérande source vers une opérande destination dans le cas des registres XMM.
MOVS Move String Cette instruction permet de copier un élément de l'adresse DS:SI dans l'adresse ES:DI et incrémente/décrémente les registres DI et SI en fonction de la taille de l'opérande source et de l'état du drapeau de direction.
MOVSB Move Byte from string to string Cette instruction permet de copier un octet de l'adresse DS:SI dans l'adresse ES:DI et incrémente/décrémente les registres DI et SI de 1 en fonction de l'état du drapeau de direction.
MOVSD Move String Doubleword Cette instruction permet de copier un double mot de l'adresse DS:SI dans l'adresse ES:DI et incrémente/décrémente les registres DI et SI de 4 en fonction de l'état du drapeau de direction.
MOVSW Move Word from string to string Cette instruction permet de copier un mot de l'adresse DS:SI dans l'adresse ES:DI et incrémente/décrémente les registres DI et SI de 2 en fonction de l'état du drapeau de direction.
MOVSX Move with sign-extend Cette instruction permet de copier un registre de taille inférieur dans un registre de plus grande taille en remplissant les bits supplémentaires avec l'extension des signes.
MOVZX Move with zero-extend Cette instruction permet de copier un registre de taille inférieur dans un registre de plus grande taille en remplissant les bits supplémentaires par des 0.
MUL Unsigned multiply Cette instruction permet d'effectuer une multiplication non-signée (nombre naturel).
NEG Negation Cette instruction permet d'effectuer le complément à 2 d'une opérande.
NOP No operation Cette instruction ne fait rien.
NOT Not Cette instruction permet d'inverser la valeur de chacun des bits d'une opérande.
OR Or Cette instruction permet d'effectuer un OU BINAIRE sur les 2 opérandes spécifiés.
OUT Output to port Cette instruction permet d'envoyer un octet, un mot ou un double mot sur le port d'entrée/sortie.
OUTS Output string to port Cette instruction permet d'envoyer un octet, un mot ou un double mot contenu dans l'adresse DS:[SI] du port d'entrée/sortie et incrémente/décrémente le registre SI en fonction de la taille de l'opérande cible et de l'état du drapeau de direction.
OUTSB Output String Byte to port Cette instruction permet d'envoyer un octet contenu dans l'adresse DS:[SI] du port d'entrée/sortie et incrémente/décrémente le registre SI de 1 en fonction de l'état du drapeau de direction.
OUTSD Output String Doubleword Cette instruction permet d'envoyer un double mot contenu dans l'adresse DS:[SI] du port d'entrée/sortie et incrémente/décrémente le registre SI de 4 en fonction de l'état du drapeau de direction.
OUTSW Output String Word to port Cette instruction permet d'envoyer un mot contenu dans l'adresse DS:[SI] du port d'entrée/sortie et incrémente/décrémente le registre SI de 2 en fonction de l'état du drapeau de direction.
PACKSSDW Pack with Signed Saturation DoubleWord Cette instruction permet de compacté 8 paquets de double mots en mots.
PACKSSDW Pack with Signed Saturation DoubleWord Cette instruction permet de compacté 8 paquets de double mots en mots.
PACKSSWB Pack with Signed Saturation Word Byte Cette instruction permet de compacté 8 paquets d'entier en octets.
PACKUSWB Pack with Signed Saturation Unsigned Word Byte Cette instruction permet de compacté 8 paquets de mots en octets.
PADDB Packed Add Byte Cette instruction permet d'effectuer une addition scalaire sur un paquet de 8 octets.
PADDD Packed Add Double Cette instruction permet d'effectuer une addition scalaire sur un paquet de 2 double mots.
PADDSB Packed Add with Saturation Byte Cette instruction permet d'effectuer une addition scalaire avec saturation sur un paquet de 8 octets signés.
PADDSW Packed Add with Saturation Word Cette instruction permet d'effectuer une addition scalaire avec saturation sur un paquet de 4 entiers.
PADDUSB Packed Add Unsigned with Saturation Byte Cette instruction permet d'effectuer une addition scalaire avec saturation sur un paquet de 8 octets.
PADDUSW Packed Add Unsigned with Saturation Word Cette instruction permet d'effectuer une addition scalaire avec saturation sur un paquet de 4 mots.
PADDW Packed Add Word Cette instruction permet d'effectuer une addition scalaire sur un paquet de 4 mots.
PAND Bitwise Logical AND Cette instruction permet d'effectuer un «ET BINAIRE» d'un quadruple mot d'une opérande source avec une opérande destination dans le cas des registres XMM.
PANDN Bitwise Logical AND Cette instruction permet d'effectuer un «ET BINAIRE» et une «NEGATION» de chacun des bits d'un quadruple mot d'une opérande source avec une opérande destination dans le cas des registres XMM.
PCMPEQB Packed Compare for Equal Byte Cette instruction permet d'effectuer une comparaison sur un paquet d'octets et fixe la valeur de chacun d'eux à FFh s'ils sont égales sinon à 00h.
PCMPEQD Packed Compare for Equal Byte Cette instruction permet d'effectuer une comparaison sur un paquet de double mots et fixe la valeur de chacun d'eux à FFFFFFFFh s'ils sont égales sinon à 00000000h.
PCMPEQW Packed Compare for Equal Word Cette instruction permet d'effectuer une comparaison sur un paquet de mots et fixe la valeur de chacun d'eux à FFFFh s'ils sont égales sinon à 0000h.
PCMPGTB Packed Compare for Greater Than Byte Cette instruction permet d'effectuer une comparaison sur un paquet d'octets et fixe la valeur de chacun d'eux à FFh si l'opérande destinataire est supérieur à l'opérande source sinon à 00h.
PCMPGTD Packed Compare for Greater Than Doubleword Cette instruction permet d'effectuer une comparaison sur un paquet de double mots et fixe la valeur de chacun d'eux à FFFFFFFFFh si l'opérande destinataire est supérieur à l'opérande source sinon à 00000000h.
PCMPGTW Packed Compare for Greater Than Word Cette instruction permet d'effectuer une comparaison sur un paquet de mots et fixe la valeur de chacun d'eux à FFFFFh si l'opérande destinataire est supérieur à l'opérande source sinon à 0000h.
PMADDWD Packed Multiply and Add Word Cette instruction permet d'effectuer une multiplication de 2 registres MMX contenant dans un paquet de mots d'un emplacement/mémoire.
PMULHW Packed Multiply and Add Word Cette instruction permet d'effectuer la multiplication de la partie haute de chacun des mots des 2 paquets d'opérandes.
PMULLW Packed Multiply and Add Word Cette instruction permet d'effectuer la multiplication de la partie basse de chacun des mots des 2 paquets d'opérandes.
POP Pop data from stack Cette instruction permet de désempiler de la pile une mot ou un double mot et la met dans une opérande.
POPA Pop All Cette instruction permet de désempiler de la pile respectivement les registres DI, SI, BP, SP, BX, DX, CX et AX.
POPAD Pop all double-word Cette instruction permet de désempiler de la pile respectivement les registres EDI, ESI, EBP, ESP, EBX, EDX, ECX et EAX.
POPF Pop data into Flags register Cette instruction permet de désempiler de la pile le registre 16 bits de drapeau contenant les indicateurs d'état.
POPFD Pop data into EFLAGS register Cette instruction permet de désempiler de la pile le registre 32 bits de drapeau contenant les indicateurs d'état.
POR Bitwise Logical OR Cette instruction permet d'effectuer un «OU BINAIRE» d'un quadruple mot d'une opérande source avec une opérande destination dans le cas des registres XMM.
PSLLD Packed Shift Left Logical Doubleword Cette instruction permet d'effectuer le décalage de bits vers la gauche d'un paquet de double mots.
PSLLQ Packed Shift Left Logical Quadword Cette instruction permet d'effectuer le décalage de bits vers la gauche d'un quadruple mot.
PSLLW Packed Shift Left Logical Word Cette instruction permet d'effectuer le décalage de bits vers la gauche d'un paquet de mots.
PSRAD Packed Shift Right Arithmetic Doubleword Cette instruction permet d'effectuer le décalage arithmétique de bits vers la droite d'un paquet de double mots.
PSRAW Packed Shift Right Arithmetic Word Cette instruction permet d'effectuer le décalage de bits vers la droite d'un paquet de mots.
PSRLD Packed Shift Right Logical Doubleword Cette instruction permet d'effectuer le décalage de bits vers la droite d'un paquet de double mots.
PSRLQ Packed Shift Right Logical Quadword Cette instruction permet d'effectuer le décalage de bits vers la droite d'un quadruple mot.
PSRLW Packed Shift Right Logical Word Cette instruction permet d'effectuer le décalage de bits vers la droite d'un paquet de mots.
PSUBB Packed Subtract Byte Cette instruction permet d'effectuer la soustraction de la valeur de chacun des octets d'un paquet contenu dans des opérandes de 64 bits.
PSUBD Packed Subtract Byte Cette instruction permet d'effectuer la soustraction de la valeur de chacun des doubles mots d'un paquet contenu dans des opérandes de 64 bits.
PSUBSB Packed Subtract with Saturation Byte Cette instruction permet d'effectuer la soustraction avec saturation de la valeur de chacun des octets signés d'un paquet contenu dans des opérandes de 64 bits.
PSUBSW Packed Subtract with Saturation Word Cette instruction permet d'effectuer la soustraction du mot de format entier de l'opérande source au mot de format entier de l'opérande de destination et écrit le résultat dans l'opérande destinataire.
PSUBUSB Packed Subtract with Saturation Unsigned Byte Cette instruction permet d'effectuer la soustraction avec saturation de la valeur de chacun des octets d'un paquet contenu dans des opérandes de 64 bits.
PSUBUSW Packed Subtract Unsigned with Saturation Word Cette instruction permet d'effectuer la soustraction avec saturation de la valeur de chacun des mots d'un paquet contenu dans des opérandes de destinations.
PSUBW Packed Subtract Words Cette instruction permet d'effectuer la soustraction de la valeur de chacun des mots d'un paquet contenu dans des opérandes de 64 bits.
PUNPCKHBW Unpack High Bytes to Words Cette instruction permet de décompacter des octets en mots dans le haut d'un paquets de 64 bits.
PUNPCKHDQ Unpack High Dwords to Qwords Cette instruction permet de décompacter des doubles mots en quadruples mots dans le haut d'un paquets de 64 bits.
PUNPCKHWD Unpack High Words to Dwords Cette instruction permet de décompacter des mots en double mots dans le haut d'un paquets de 64 bits.
PUNPCKLBW Unpack Low Bytes to Words Cette instruction permet de décompacter des octets en mots dans le bas d'un paquets de 64 bits.
PUNPCKLDQ Unpack Low Dwords to Qwords Cette instruction permet de décompacter des doubles mots en quadruples mots dans le bas d'un paquets de 64 bits.
PUNPCKLWD Unpack Low Words to Dwords Cette instruction permet de décompacter des mots en double mots dans le bas d'un paquets de 64 bits.
PUSH Push data onto stack Cette instruction permet d'empiler une mot ou un double mot dans la pile.
PUSHA Push All Cette instruction permet d'empiler respectivement les registres DI, SI, BP, SP, BX, DX, CX et AX dans la pile.
PUSHAD Push all double-word Cette instruction permet d'empiler respectivement les registres EDI, ESI, EBP, ESP, EBX, EDX, ECX et EAX dans la pile.
PUSHF Push flags onto stack Cette instruction permet d'empiler respectivement le registre 16 bits de drapeau des indicateurs d'état dans la pile.
PUSHFD Push EFLAGS Cette instruction permet d'empiler respectivement le registre 32 bits de drapeau des indicateurs d'état dans la pile.
PXOR Bitwise Logical Exclusive OR Cette instruction permet d'effectuer un ou exclusif binaire d'un quadruple mot d'une opérande source avec une opérande destination dans le cas des registres XMM.
RCL 1 Rotate left (with carry) Cette instruction permet d'effectuer une rotation des bits vers la gauche en réinsérant le bit dans l'indicateur de retenue (CF) ainsi que dans le bit le plus à droite libéré.
RCR 1 Rotate right (with carry) Cette instruction permet d'effectuer une rotation des bits vers la droite en réinsérant le bit dans l'indicateur de retenue (CF) ainsi que dans le bit le plus à gauche libéré.
RDMSR ReaD from Model-Specific Register Cette instruction permet de charger le contenu du modèle de registre 64-bits (MSR) indiquer par le registre ECX dans le couple de registre EDX:EAX.
RDPMC Read the Performance Monitoring Counter Cette instruction permet d'effectuer la lecture du compteur du moniteur de performance.
RDTSC ReaD Time Stamp Counter Cette instruction permet de charger la valeur courante du compteur de temps du microprocesseur dans le couple de registres EDX:EAX.
REP Repeat Cette instruction est utilisé comme préfixe avec d'autres instructions pour effectuer des répétitions d'instructions tant que CX ne vaut pas 0.
REPE Repeat equal Cette instruction est utilisé comme préfixe avec d'autres instructions pour effectuer des répétitions d'instructions jusqu'à ce que CX = 0 ou tant que l'indicateur ZF = 0.
REPNE Repeat not equal Cette instruction est utilisé comme préfixe avec d'autres instructions pour effectuer des répétitions d'instructions jusqu'à ce que CX = 0 ou tant que l'indicateur ZF = 1.
RET Return from procedure Cette instruction permet de quitter une procédure.
RETF Return from far procedure Cette instruction permet de quitter une procédure ayant lieu avec un appel long (FAR CALL).
RETN Return from near procedure Cette instruction permet de quitter une procédure ayant lieu avec un appel court (NEAR CALL).
ROL 1 Rotate left Cette instruction permet d'effectuer une rotation des bits vers la gauche en réinsérant le bit dans le bit le plus à droite libéré.
ROR 1 Rotate right Cette instruction permet d'effectuer une rotation des bits vers la droite en réinsérant le bit dans le bit le plus à gauche libéré.
RSM Resume operation of interrupted program Cette instruction permet de retourner le contrôle du programme du mode de gestion système (SMM) pour le programme d'application ou la procédure du système d'exploitation ayant été interrompu lorsque le microprocesseur à reçu un signal SSM.
SAHF Store AH into flags Cette instruction permet de copier les bits du registre AH dans l'octet de poids faible dans le registre des drapeaux (les indicateurs d'état).
SAL 1 Shift Arithmetically left Cette instruction permet d'effectuer une rotation des bits vers la gauche en réinsérant le bit dans l'indicateur de retenue (CF).
SAR 1 Shift Arithmetically right Cette instruction permet d'effectuer une rotation des bits vers la droite en réinsérant le bit dans l'indicateur de retenue (CF).
SBB Subtraction with borrow Cette instruction permet de soustraire avec l'indicateur de retenue (CF) une valeur à une opérande.
SCAS String Compare String Cette instruction permet de comparer un octet, un mot ou un double mot avec la cellule mémoire à l'adresse ES:[DI] et incrémente/décrémente le registre DI en fonction de la taille de l'opérande cible et de l'état du drapeau de direction.
SCASB String Compare String Byte Cette instruction permet de comparer le registre AL avec la cellule mémoire à l'adresse ES:[DI] et incrémente/décrémente le registre DI de 1 en fonction de l'état du drapeau de direction.
SCASD Scan string double-word Cette instruction permet de comparer le registre EAX avec la cellule mémoire à l'adresse ES:[DI] et incrémente/décrémente le registre DI de 4 en fonction de l'état du drapeau de direction.
SCASW String Compare String Word Cette instruction permet de comparer le registre AX avec la cellule mémoire à l'adresse ES:[DI] et incrémente/décrémente le registre DI de 2 en fonction de l'état du drapeau de direction.
SEG Segment Cette directive permet de demander la partie segment de l'adresse d'une opérande.
SETALC Set AL Carry Cette instruction permet de copier la valeur du drapeau de retenue dans le registre AL en la multipliant par 0FFh.
SETcc Set byte to one on condition Cette directive permet de fixer la valeur d'une opérande 1 si la condition d'indicateur d'état du registre 32 bits de drapeau est vrai sinon fixe la valeur à 0.
SGDT Store global descriptor table Cette instruction permet d'entreposer le sélecteur de segment dans le registre GDTR (registre de table global de descripteur) dans l'opérande de destination.
SHL 1 Shift left Cette instruction permet d'effectuer une rotation des bits vers la gauche en réinsérant le bit dans l'indicateur de retenue (CF).
SHLD Shift left double-word Cette instruction permet d'effectuer une rotation des bits d'un double mot vers la gauche en réinsérant le bit dans l'indicateur de retenue (CF).
SHR 1 Shift right Cette instruction permet d'effectuer une rotation des bits vers la droite en réinsérant le bit dans l'indicateur de retenue (CF).
SHRD Shift right double-word Cette instruction permet d'effectuer une rotation des bits d'un double mot vers la droite en réinsérant le bit dans l'indicateur de retenue (CF).
SIDT Store interrupt descriptor table Cette instruction permet d'entreposer le registre de descripteur de table d'interruption (IDTR) dans l'opérande de destination.
SLDT Store local descriptor table Cette instruction permet d'entreposer le sélecteur de segment dans le registre LDTR (registre de table local de descripteur) dans l'opérande de destination.
SMSW Store machine status word Cette instruction permet d'entreposer le mot des états (soit les bits de 0 à 15 du registre de contrôle CR0) à partir du registre de tâche (TR) dans l'opérande cible.
STC Set carry flag Cette instruction permet de fixer l'indicateur de retenue (CF) à la valeur 1.
STD Set direction flag Cette instruction permet de fixer l'indicateur de direction (DF) à la valeur 1.
STI Set interrupt flag Cette instruction permet de fixer l'indicateur d'interruption (IF) à la valeur 1.
STOS Store in string Cette instruction permet de copier un octet, un mot ou un double mot dans la cellule mémoire à l'adresse ES:[DI] et incrémente/décrémente le registre DI en fonction de la taille de l'opérande cible et de l'état du drapeau de direction.
STOSB Store in string Byte Cette instruction permet de copier le registre AL dans la cellule mémoire à l'adresse ES:[DI] et incrémente/décrémente le registre DI de 1 en fonction de l'état du drapeau de direction.
STOSD Store string double-word Cette instruction permet de copier le registre EAX dans la cellule mémoire à l'adresse ES:[DI] et incrémente/décrémente le registre DI de 4 en fonction de l'état du drapeau de direction.
STOSW Store in string Word Cette instruction permet de copier le registre AX dans la cellule mémoire à l'adresse ES:[DI] et incrémente/décrémente le registre DI de 2 en fonction de l'état du drapeau de direction.
STR Store task register Cette instruction permet d'entreposer le sélecteur de segment à partir du registre de tâche (TR) à l'opérande cible
SUB Subtraction Cette instruction permet de soustraire une valeur à une opérande.
SYSENTER System Enter Cette instruction permet d'effectuer le transférer du contrôle d'un point d'entrée au système d'exploitation.
SYSEXIT System Return Cette instruction permet de retourner du système d'exploitation à une application.
TEST Test Cette instruction permet d'effectuer un «Et binaire» sur une opérande cible sans modifier sa valeur.
UD2 Undefined To Cette instruction permet de provoquer l'exécution d'un code indéfinie.
VERR Verify a segment for reading Cette instruction permet de vérifier si le code ou le segment de données spécifié est en mode lecture à partir du niveau de privilège courant (CPL).
VERW Verify a segment for writing Cette instruction permet de vérifier si le code ou le segment de données spécifié est en mode écriture à partir du niveau de privilège courant (CPL).
WAIT Wait Cette instruction permet de faire passer le microprocesseur en mode d'attente jusqu'à ce que la ligne de teste sur la carte mère s'active.
WBINVD Write Back and Invalidate Cache Cette instruction permet de désactiver et de vider le tampon interne du micro-processeur.
WRMSR WRite to Model-Specific Register Cette instruction écrit les valeurs contenu dans le MSR (Model-Specific Register) en fonction du registre d'index ECX dans la paire des registres EDX:EAX.
XADD Exchange and Add Cette instruction permet d'échanger le premier opérande avec le deuxième opérande, et ensuite effectue la somme des valeurs dans le première opérande.
XCHG Exchange Cette instruction permet d'échanger la valeur de deux opérandes.
XLAT Table look-up translation Cette instruction permet de remplacer le contenu du registre AL par un octet de la «tablesource».
XOR Exclusive OR Cette instruction permet d'effectuer un OU exclusif BINAIRE sur les 2 opérandes spécifiés.


Dernière mise à jour : Samedi, le 22 décembre 2018