Assembleur 80x86 |
BT |
INTEL 80386+ |
Bit Test |
Syntaxe
BT 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 permet de transférer de l'Opérande
Source 1 vers l'indicateur de retenue, le bit spécifié
par l'Opérande Source 2. Les opérandes
utilisés peuvent être soit 16 ou 32 bits.
Algorithme
MODULE BT(Opérande Source 1, Opérande Source 2)
drapeau CF ← 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 |
BT reg/mem16, reg16 |
0Fh A3h /r |
Copie la valeur de sélection de bit dans le drapeau de retenu |
BT reg/mem32, reg32 |
0Fh A3h /r |
Copie la valeur de sélection de bit dans le drapeau de retenu |
BT reg/mem64, reg64 |
0Fh A3h /r |
Copie la valeur de sélection de bit dans le drapeau de retenu |
BT reg/mem16, imm8 |
0Fh BAh /4 ib |
Copie la valeur de sélection de bit dans le drapeau de retenu |
BT reg/mem32, imm8 |
0Fh BAh /4 ib |
Copie la valeur de sélection de bit dans le drapeau de retenu |
BT reg/mem64, imm8 |
0Fh BAh /4 ib |
Copie la valeur de sélection de bit dans le drapeau de retenu |
Cycles d'horloge
Instruction |
Opcode |
8086 |
8088 |
80186 |
80286 |
80386 |
i486 |
Pentium |
Cx486SLC |
Cx486DX |
IBM 486BL3X |
UMC U5S |
BT reg16, imm8 |
0Fh BAh /4 ib |
|
|
|
|
3 |
3 |
? |
? |
? |
? |
? |
BT mem16, imm8 |
0Fh BAh /4 ib |
|
|
|
|
12 |
6 |
? |
? |
? |
? |
? |
BT reg16, reg16 |
0Fh A3h /r |
|
|
|
|
3 |
3 |
? |
? |
? |
? |
? |
BT mem16, reg16 |
0Fh A3h /r |
|
|
|
|
12 |
12 |
? |
? |
? |
? |
? |
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 |
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 BTC
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 804
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 68 à 69.
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 156 à 158.
Dernière mise à jour : Lundi, le 8 septembre 2014