Assembleur 80x86 |
BTR |
INTEL 80386+ |
Bit Test and Reset |
Syntaxe
BTR 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 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 met le bits correspondant
de l'Opérande Source 1 à 0. Les opérandes utilisés peuvent être soit sur 16 ou 32 bits.
Algorithme
MODULE BTR(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 ] ← 0
|
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 |
BTR reg/mem16, reg16 |
0Fh B3h /r |
Copie la valeur du bit de sélection dans le drapeau de retenu et efface le bit de sélection. |
BTR reg/mem32, reg32 |
0Fh B3h /r |
Copie la valeur du bit de sélection dans le drapeau de retenu et efface le bit de sélection. |
BTR reg/mem64, reg64 |
0Fh B3h /r |
Copie la valeur du bit de sélection dans le drapeau de retenu et efface le bit de sélection. |
BTR reg/mem16, imm8 |
0Fh BAh /6 ib |
Copie la valeur du bit de sélection dans le drapeau de retenu et efface le bit de sélection. |
BTR reg/mem32, imm8 |
0Fh BAh /6 ib |
Copie la valeur du bit de sélection dans le drapeau de retenu et efface le bit de sélection. |
BTR reg/mem64, imm8 |
0Fh BAh /6 ib |
Copie la valeur du bit de sélection dans le drapeau de retenu et efface 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 BTC
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 72.
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 162 à 164.
Dernière mise à jour : Lundi, le 8 septembre 2014