Assembleur 80x86 |
BTC |
INTEL 80386+ |
Bit Test and Complement |
Syntaxe
BTC Opérande Source 1, Opérande Source 2
|
Paramètres
Nom |
Description |
Opérande Source 1 |
Ce paramètre permet d'indiquer l'opérande à utiliser pour le transfert des données. |
Opérande Source 2 |
Ce paramètre permet d'indiquer l'opérande le bit à transféré. |
Description
Cette instruction offre la possibilité de transférer tout
d'abord de l'Opérande Source 1 vers l'indicateur de
retenue le bits spécifié par l'Opérande
Source 2 puis d'ensuite inverser la valeur du bit correspondant
dans l'Opérande Source 1. Les opérandes utilisés
peuvent être soit sur 16 ou 32 bits. Il est possible d'associer
2 registres, un registre à un emplacement mémoire, un
registre ou un emplacement mémoire à un registre ou à
une valeur immédiate.
Algorithme
MODULE BTC(Opérande Source 1, Opérande Source 2)
drapeau CF ← BIT [ Opérande Source 1, Opérande Source 2 ]
BIT [ Opérande Source 1, Opérande Source 2 ] ← Pas BIT [ Opérande Source 1, Opérande Source 2 ]
|
Remarque
- Processeur INTEL: Quand vous faites des accès en bits dans la mémoire, le microprocesseur fabriquer par le
constructeur INTEL effectue des accès en mémoire d'adressage sous la forme suivante:
Adresse ← Segment + ( 4 x ( Bit d'offset ÷ 32 ) )
|
Tandis que dans le cas d'une opérande de taille de 32 bits, ou
lorsque vous faîtes des accès mémoire de 2
octets (16 bits), il utilise plutôt la forme suivante:
Adresse ← Segment + ( 2 x ( Bit d'offset ÷ 16 ) )
|
Également, lorsqu'il y a 1 octets, il faut appliquer l'opération en tenant compte du 8 bits:
Adresse ← Segment + ( 1 x ( Bit d'offset ÷ 8 ) )
|
Il y a donc au proportionnalité de la division en fonction de la dimension de l'accès en mémoire.
Mnémonique
Instruction |
Opcode |
Description |
BTC reg/mem16, reg16 |
0Fh BBh /r |
Copie la valeur du bit de sélection dans le drapeau de retenu et complémente le bit de sélection. |
BTC reg/mem32, reg32 |
0Fh BBh /r |
Copie la valeur du bit de sélection dans le drapeau de retenu et complémente le bit de sélection. |
BTC reg/mem64, reg64 |
0Fh BBh /r |
Copie la valeur du bit de sélection dans le drapeau de retenu et complémente le bit de sélection. |
BTC reg/mem16, imm8 |
0Fh BAh /7 ib |
Copie la valeur du bit de sélection dans le drapeau de retenu et complémente le bit de sélection. |
BTC reg/mem32, imm8 |
0Fh BAh /7 ib |
Copie la valeur du bit de sélection dans le drapeau de retenu et complémente le bit de sélection. |
BTC reg/mem64, imm8 |
0Fh BAh /7 ib |
Copie la valeur du bit de sélection dans le drapeau de retenu et complémente le bit de sélection. |
Exceptions
Message |
Mode réel |
Virtuel 8086 |
Mode protégé |
Description |
#SS(Pile non-canonique) |
X |
X |
X |
Une adresse mémoire dépasse la limite du segment de pile ou n'est pas canonique |
#GP(Protection général) |
X |
X |
X |
Une adresse mémoire dépasse la limite du segment de données ou n'est pas canonique |
|
|
X |
L'opérande de destination n'est pas dans un segment non écrivable |
|
|
X |
Un segment de données nulle est utilisé comme référence mémoire |
#PF(Faute de page) |
|
X |
X |
Une faute de page résultat de l'exécution de l'instruction |
#AC(Vérifie l'alignement) |
|
X |
X |
Un désalignement de la référence mémoire est effectué quand une vérification d'alignement est activé |
Voir également
Instruction assembleur 80x86 - Instruction BT
Instruction assembleur 80x86 - Instruction BTR
Instruction assembleur 80x86 - Instruction BTS
Références
Le livre d'Or PC, Martin Althaus, 1992, ISBN: 2-7361-0934-1, page 805
AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and System Instructions, Edition Advanced Micro Devices, Revision 3.14, September 2007, Publication No. 24594, page 70 à 71.
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2A: Instruction Set Reference, A-M, Edition Intel, Mars 2010, Publication No. 253666-034US, page 159 à 161.
Dernière mise à jour : Lundi, le 8 septembre 2014