Section courante

A propos

Section administrative du site


Vue par description   Vue par Opcode   Vue par cycle d'horloge   Vue par drapeaux du EFLAGS   Vue par CPU   Rechercher

Voici la liste des instructions en se basant sur leur affectation des drapeaux du registres «EFLAGS»:

Instruction Description OF SF ZF AF PF CF TF IF DF NT RF
AAA Cette instruction permet d'adapter le résultat obtenu par l'addition de 2 valeur en format DCB. TM M          
AAD Cette instruction permet de convertir une valeur de format DCB non compactée. M M M          
AAM Cette instruction offre la possibilité de convertir le produit de la multiplication de 2 valeurs de format DCB en un format DCB. M M M          
AAS Cette instruction permet d'adapter le résultat de la soustraction de nombre de format DCB. TM M          
ADC 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. M M M M M TM          
ADD Cette instruction additionne 2 quantités numérique sur 8, 16 ou 32 bits. M M M M M M          
AND Cette instruction permet d'effectuer un ET BINAIRE sur les 2 opérandes spécifiés. 0 M M M 0          
ARPL Cette instruction permet de contrôler et corriger le niveau de privilège du segment de code en mode protégée.     M                
BOUND Cette instruction permet de vérifier la validité pouvant exister entre avec un tableau et son indexation.                      
BSF Cette instruction permet d'effectuer une comparaison binaire de la droite vers la gauche. M          
BSR Cette instruction permet d'effectuer une comparaison binaire de la gauche vers la droite. M          
BSWAP Cette instruction permet d'inverse l'ordre des 4 octets d'un registre de taille de 32 bits.                      
BT Cette instruction permet de transférer une Opérande vers l'indicateur de retenue. M          
BTC Cette instruction transfère une Opérande vers l'indicateur de retenue le bits spécifié et inverser la valeur du bit correspondant. M          
BTR 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. M          
BTS 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. M          
CALL Cette instruction force le microprocesseur à exécuter les instructions du sous-programme indiqué par l'adresse d'appel avant de continuer.                      
CBW 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.                      
CLC Cette instruction permet de mettre l'indicateur d'état de retenu CF à 0.           0          
CLD Cette instruction met l'indicateur d'état DF à 0, soit la direction croissante.                 0    
CLI Cette instruction met l'indicateur d'état IF à 0, soit l'interdiction des interruptions.               0      
CLTS Cette instruction permet de mettre à 0 le drapeau de l'indicateur de tâche (Task-Switch) du registre CR0.                      
CMC 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.           M          
CMOVcc Cette instruction copie des données d'une source (valeur) à une destination (registre) à la condition que la condition demandé soit remplie. T T T   T T          
CMP Cette instruction offre la possibilité essentielle de comparer 2 registres ou emplacements de mémoire. M M M M M M          
CMPS 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. M M M M M M     T    
CMPXCHG Cette instruction compare la destination avec l'accumulateur (AL, AX ou EAX) et les échanges si la condition est vrai. M M M M M M          
CMPXCHG8B Cette instruction compare un nombre de 64 bits et les échanges si la condition est vrai.     M                
COMISD Cette instruction permet de comparer deux valeurs réel de double-précision dans la partie faible du quadruple mot de deux opérande et fixe les drapeaux de ZF, PF et FC du registre EFLAGS en fonction du résultat (non-ordonnée, supérieur à, inférieur ou égal). 0 0 M 0 M M          
COMISS Cette instruction permet de comparer deux valeurs réel de simple-précision dans la partie faible du quadruple mot de deux opérande et fixe les drapeaux de ZF, PF et FC du registre EFLAGS en fonction du résultat (non-ordonnée, supérieur à, inférieur ou égal). 0 0 M 0 M M          
CPUID Cette instruction retourne le code d'identification du microprocesseur.                      
CWD 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.                      
DAA Cette instruction corrige après coup les retenues lors de la manipulation de valeur DCB. M M TM M TM          
DAS Cette instruction offre l'intéressante possibilité de corrige le résultat d'une soustraction de 2 nombres de format DCB compactées. M M TM M TM          
DEC Cette instruction décrément de 1 le registre ou l'adresse mémoire spécifié. M M M M M            
DIV Cette instruction permet d'effectuer une division non-signée (nombre naturel).          
ENTER Cette instruction permet de créer les structures de paramètres nécessaires aux procédures des langages de haut niveau.                      
ESC Cette instruction active le coprocesseur, lequel se permettra d'utiliser les méthodes d'adressage du processeur principal (CPU).                      
FCMOVcc Cette instruction permet de déplacé des nombres réel (virgule flottante) si la condition en question est satisfaite.     T   T T          
FCOM Cette instruction permet de comparer le nombre réel de valeur positive source avec le registre mathématique ST(0) et mettre les indicateurs d'état C0 à C3 avec la valeur 1.     M   M M          
FCOMI 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.     M   M M          
FCOMIP 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.     M   M M          
FUCOMI 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.     M   M M          
FUCOMIP 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.     M   M M          
HLT 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 Cette instruction permet d'effectuer une division signée (nombre entier).          
IMUL Cette instruction permet d'effectuer une multiplication signée (nombre entier). M M          
IN 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 Cette instruction permet d'incrémenter un registre ou un emplacement mémoire. M M M M M            
INS 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.                 T    
INT Cette instruction permet d'exécuter l'interruption avec le numéro spécifié.             0     0  
INTO Cette instruction permet d'exécuter l'interruption numéro 4 si le drapeau de débordement (OF) est fixé sur 1é T           0     0  
INVD Cette instruction permet de désactiver et de vider le tampon interne du micro-processeur.                      
INVLPG Cette instruction permet d'invalider les transferts du TLB (Translation Lookaside Buffer) du micro-processeur                      
IRET Cette instruction permet d'effectuer un retour précédemment provoquer par une interruption. R R R R R R R R R T  
Jcc Ces instructions permettent d'effectuer d'effectuer un branchement conditionnel à emplacement mémoire spécifié. T T T   T T          
JCXZ Ces instructions permettent d'effectuer d'effectuer un branchement conditionnel à emplacement mémoire spécifié si le registre CX vaut 0.                      
JMP Cette instruction permet d'effectuer un branchement à un emplacement mémoire spécifié.                      
LAHF Cette instruction permet de transférer les bits d'indicateurs du registre d'état vers le registre AH.                      
LAR Cette instruction permet de charger le registre des indicateurs d'un descripteur.     M                
LDS 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 Cette instruction permet de copier l'offset d'une adresse de mémoire contenu dans un registre spécifié.                      
LEAVE 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 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 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 Cette instruction permet de charger un descripteur de tables globale.                      
LGS 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 Cette instruction permet de charger un descripteur de tables d'interruption.                      
LLDT Cette instruction permet de charger un descripteur de tables local.                      
LMSW Cette instruction permet de copier 4 des bits d'une opérande vers les 4 bits de registre de contrôle CR0.                      
LOCK Cette instruction est utilisé comme préfixe avec d'autres instructions pour amener le microprocesseur à émettre un signal de vérouillage (Lock) sur le bus lors du traitement de l'instruction suivante.                      
LODS 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.                 T    
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.                      
LOOPE 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.     T                
LOOPNE 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.     T                
LSL 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.     M                
LSS 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 Cette instruction permet de charger l'opérande source dans le champ du sélecteur de segment du registre de tâche.                      
MONITOR Cette instruction permet d'indiquer au microprocesseur quel rangé d'adresse est à serveiller par l'instruction STORE.                      
MOV Cette instruction permet de copier opérande source dans une opérande destinataire.                      
MOV control, debug, test Cette instruction permet de copier opérande source dans une opérande destinataire.          
MOVS 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.                 T    
MOVSX 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 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 Cette instruction permet d'effectuer une multiplication non-signée (nombre naturel). M M          
MWAIT Cette instruction permet d'indiquer au microprocesseur que l'état de l'alimentation de la ligne de cache est en attente d'écriture dans la plage d'adresse, mettant fin à la plupart des activités dans le noyau en le faisant.                      
NEG Cette instruction permet d'effectuer le complément à 2 d'une opérande. M M M M M M          
NOP Cette instruction ne fait rien.                      
NOT Cette instruction permet d'inverser la valeur de chacun des bits d'une opérande.                      
OR Cette instruction permet d'effectuer un OU BINAIRE sur les 2 opérandessp écifiés. 0 M M M 0          
OUT Cette instruction permet d'envoyer un octet, un mot ou un double mot sur le port d'entrée/sortie.                      
OUTS 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.                 T    
POP Cette instruction permet de désempiler de la pile une mot ou un double mot et la met dans une opérande.                      
POPA Cette instruction permet de désempiler de la pile respectivement les registres DI, SI, BP, SP, BX, DX, CX et AX.                      
POPF Cette instruction permet de désempiler de la pile le registre 16 bits de drapeau contenant les indicateurs d'état. R R R R R R R R R R  
PUSH Cette instruction permet d'empiler une mot ou un double mot dans la pile.                      
PUSHA Cette instruction permet d'empiler respectivement les registres DI, SI, BP, SP, BX, DX, CX et AX dans la pile.                      
PUSHF Cette instruction permet d'empiler respectivement le registre 16 bits de drapeau des indicateurs d'état dans la pile.                      
RCL 1 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é. M         TM          
RCL compteur 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é.         TM          
RCR 1 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é. M         TM          
RCR compteur 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é.         TM          
RDMSR 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 Cette instruction permet d'effectuer la lecture du compteur du moniteur de performance.                      
RDTSC Cette instruction permet de charger la valeur courante du compteur de temps du microprocesseur dans le couple de registres EDX:EAX.                      
REP 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 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 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 Cette instruction permet de quitter une procédure.                      
ROL 1 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é. M         M          
ROL compteur 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é.         M          
ROR 1 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é. M         M          
ROR compteur 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é.         M          
RSM 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. M M M M M M M M M M M
SAHF 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).   R R R R R          
SAL 1 Cette instruction permet d'effectuer une rotation des bits vers la gauche en réinsérant le bit dans l'indicateur de retenue (CF). M M M M M          
SAL compteur Cette instruction permet d'effectuer une rotation des bits vers la gauche en réinsérant le bit dans l'indicateur de retenue (CF). M M M M          
SAR 1 Cette instruction permet d'effectuer une rotation des bits vers la droite en réinsérant le bit dans l'indicateur de retenue (CF). M M M M M          
SAR compteur Cette instruction permet d'effectuer une rotation des bits vers la droite en réinsérant le bit dans l'indicateur de retenue (CF). M M M M          
SBB Cette instruction permet de soustraire avec l'indicateur de retenue (CF) une valeur à une opérande. M M M M M TM          
SCAS 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. M M M M M M     T    
SETcc 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. T T T   T T          
SGDT 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 Cette instruction permet d'effectuer une rotation des bits vers la gauche en réinsérant le bit dans l'indicateur de retenue (CF). M M M M M          
SHL compteur Cette instruction permet d'effectuer une rotation des bits vers la gauche en réinsérant le bit dans l'indicateur de retenue (CF). M M M M          
SHLD 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). M M M M          
SHR 1 Cette instruction permet d'effectuer une rotation des bits vers la droite en réinsérant le bit dans l'indicateur de retenue (CF). M M M M M          
SHR compteur Cette instruction permet d'effectuer une rotation des bits vers la droite en réinsérant le bit dans l'indicateur de retenue (CF). M M M M          
SHRD 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). M M M M          
SIDT Cette instruction permet d'entreposer le registre de descripteur de table d'interruption (IDTR) dans l'opérande de destination.                      
SLDT 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 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 Cette instruction permet de fixer l'indicateur de retenue (CF) à la valeur 1.           1          
STD Cette instruction permet de fixer l'indicateur de direction (DF) à la valeur 1.                 1    
STI Cette instruction permet de fixer l'indicateur d'interruption (IF) à la valeur 1.               1      
STOS 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.                 T    
STR Cette instruction permet d'entreposer le sélecteur de segment à partir du registre de tâche (TR) à l'opérande cible                      
SUB Cette instruction permet de soustraire une valeur à une opérande. M M M M M M          
TEST Cette instruction permet d'effectuer un «Et binaire» sur une opérande cible sans modifier sa valeur. 0 M M M 0          
UCOMISD Cette instruction permet d'effectuer une comparaison désordonnée de valeurs réels de double précision dans la partie basse d'un double mot du premier opérande et du deuxième opérande, et fixe les drapeaux ZF, PF et FC dans le registre EFLAGS selon le résultat (non-ordonnée, supérieur à, inférieur ou égal) 0 0 M 0 M M          
UCOMISS Cette instruction permet d'effectuer une comparaison désordonnée de valeurs réels de simple précision dans la partie basse d'un double mot du premier opérande et du deuxième opérande, et fixe les drapeaux ZF, PF et FC dans le registre EFLAGS selon le résultat (non-ordonnée, supérieur à, inférieur ou égal) 0 0 M 0 M M          
UD2 Cette instruction permet de provoquer l'exécution d'un code indéfinie.                      
VERR 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).     M                
VERW 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).     M                
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 Cette instruction permet de désactiver et de vider le tampon interne du micro-processeur.                      
WRMSR 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 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. M M M M M M          
XCHG Cette instruction permet d'échanger la valeur de deux opérandes.                      
XLAT Cette instruction permet de remplacer le contenu du registre AL par un octet de la «tablesource».                      
XOR Cette instruction permet d'effectuer un OU exclusif BINAIRE sur les 2 opérandes spécifiés. 0 M M M 0          


Légende

      Cette case vide permet d'indiquer que l'instruction n'affecte pas le drapeau.
—    Ce symbole permet d'indiquer une instruction fixant une valeur indéfini.
0    Ce chiffre permet d'indiquer une instruction fixant la valeur du drapeau à 0.
1    Ce chiffre permet d'indiquer une instruction fixant la valeur du drapeau à 1.
M    Cette lettre permet d'indiquer une instruction de modification de drapeau.
R    Cette lettre permet d'indiquer une instruction restaurant la valeur du drapeau.
T    Cette lettre permet d'indiquer une instruction de test de drapeau.

Références

Assembleur - Référence, Edition Micro Application, Pierre Maurette, 2003, ISBN: 2-7429-3061-2.
The Undocumented PC: A programmer's Guide to I/O, CPUs, and Fixed Memory Areas - Second Edition, Edition Addison-Wesley, Frank van Gilluwe, 1997, ISBN: 0-201-47950-8.
Intel® 64 and IA-32 Architectures Software Developer's Manuals, Volume 1: Basic Architecture, Order Number: 253665-032US, Septembre 2009, volume I, A-1.

Dernière mise à jour : Samedi, le 21 décembre 2013