Retour à l'accueil | Contact : etienne"point"sauvage"at"gmail.com | Retour à la liste des instructions. |
AND | logical ANDet logique |
Effectue une opération ET bit-à-bit sur la valeur dans un registre ou un emplacement mémoire (premier opérande) et une valeur immédiate ou la valeur dans un registre ou un emplacement mémoire (second opérande), et stocke le résultat dans l'emplacement du premier opérande. L'instruction ne peut faire le ET de deux emplacements mémoire.
L'instruction positionne chaque bit du résultat à 1 si le bit correspondant de chaque opérande est positionné; sinon, il nettoie le bit à 0. Le tableau suivant montre la table de vérité pour l'opération ET :
X | Y | X ET Y |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Les formes de l'instruction AND qui écrivent en mémoire supportent le préfixe LOCK. Pour des détails à propos du préfixe LOCK, consulter "LOCK Prefix" page 10.
Mnémonique | Opcode | Description |
AND AL, imm8 | 24 ib | ET le contenu de AL avec une valeur immédiate de 8 bits et stocke le résultat dans AL. |
AND AX, imm16 | 25 iw | ET le contenu de AX avec une valeur immédiate de 16 bits et stocke le résultat dans AX. |
AND EAX, imm32 | 25 id | ET le contenu de EAX avec une valeur immédiate de 32 bits et stocke le résultat dans EAX. |
AND RAX, imm32 | 25 id | ET le contenu de RAX avec une valeur immédiate de 32 bits étendue avec le signe et stocke le résultat dans RAX. |
AND reg/mem8, imm8 | 80 /4 ib | ET le contenu de reg/mem8 avec imm8. |
AND reg/mem16, imm16 | 81 /4 iw | ET le contenu de reg/mem16 avec imm16. |
AND reg/mem32, imm32 | 81 /4 id | ET le contenu de reg/mem32 avec imm32. |
AND reg/mem64, imm32 | 81 /4 id | ET le contenu de reg/mem64 avec imm32 étendue avec le signe. |
AND reg/mem16, imm8 | 83 /4 ib | ET le contenu de reg/mem16 avec une valeur sur 8 bits étendue avec le signe. |
AND reg/mem32, imm8 | 83 /4 ib | ET le contenu de reg/mem32 avec une valeur sur 8 bits étendue avec le signe. |
AND reg/mem64, imm8 | 83 /4 ib | ET le contenu de reg/mem64 avec une valeur sur 8 bits étendue avec le signe. |
AND reg/mem8, reg8 | 20 /r | ET le contenu sur 8 bits d'un registre ou d'un emplacement mémoire avec le contenu d'un registre sur 8 bits. |
AND reg/mem16, reg16 | 21 /r | ET le contenu sur 16 bits d'un registre ou d'un emplacement mémoire avec le contenu d'un registre sur 16 bits. |
AND reg/mem32, reg32 | 21 /r | ET le contenu sur 32 bits d'un registre ou d'un emplacement mémoire avec le contenu d'un registre sur 32 bits. |
AND reg/mem64, reg64 | 21 /r | ET le contenu sur 64 bits d'un registre ou d'un emplacement mémoire avec le contenu d'un registre sur 64 bits. |
AND reg8, reg/mem8 | 22 /r | ET le contenu d'un registre sur 8 bits avec le contenu sur 8 bits d'un registre ou d'un emplacement mémoire. |
AND reg16, reg/mem16 | 23 /r | ET le contenu d'un registre sur 16 bits avec le contenu sur 16 bits d'un registre ou d'un emplacement mémoire. |
AND reg32, reg/mem32 | 23 /r | ET le contenu d'un registre sur 32 bits avec le contenu sur 32 bits d'un registre ou d'un emplacement mémoire. |
AND reg64, reg/mem64 | 23 /r | ET le contenu d'un registre sur 64 bits avec le contenu sur 64 bits d'un registre ou d'un emplacement mémoire. |
TEST, OR, NOT, NEG, XOR
ID | VIP | VIF | AC | VM | RF | NT | IOPL | OF | DF | IF | TF | SF | ZF | AF | PF | CF |
0 | M | M | U | M | 0 | |||||||||||
21 | 20 | 19 | 18 | 17 | 16 | 14 | 13-12 | 11 | 10 | 9 | 8 | 7 | 6 | 4 | 2 | 0 |
Note : les bits 31-22, 15, 5, 3 et 1 sont réservés. Un drapeau mis à 1 ou nettoyé à 0 est M (modifié). Les drapeaux non affectés sont blancs. Les drapeaux non définis sont U. |
Exception | Réel | 8086 virtuel | Protégé | Cause de l'exception |
Pile, #SS | X | X | X | Une adresse mémoire dépasse la limite du segment de pile ou n'est pas canonique. |
Protection générale, #GP | X | X | X X X | Une adresse mémoire dépasse la limite d'un segment de données ou n'est pas canonique. L'opérande de destination était dans un segment non inscriptible. Un segment de données NULL a été utilisé pour référencer la mémoire. |
Faute de page, #PF | X | X | Une faute de page résulte de l'exécution de l'instruction. | |
Vérification d'alignement, #AC | X | X | Une référence mémoire non alignée a été faite pendant que la vérification d'alignement était active. |
Source : AMD x86-64 Architecture PROGRAMMER'S MANUAL Volume 3 General-Purpose and System Instructions, 24594 Rev. 3.02 August 2002.
Retour à l'accueil | Contact : etienne"point"sauvage"at"gmail.com | Retour à la liste des instructions |