Assembleur 80x86 |
BTS |
INTEL 80386+ |
Bit Test and Set |
Syntaxe
BTS 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 Opérande
Source1 vers l'indicateur de retenue le bits spécifié par Opérande Source 2 puis ensuite met le bits
correspondant dans Opérande Source 1 à 1. Les opérandes utilisés peuvent être sur soit 16 ou 32 bits.
Algorithme
MODULE BTS(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 ) ← 1
|
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 |
BTS reg/mem16, reg16 |
0Fh ABh /r |
Copie la valeur du bit de sélection dans le drapeau de retenu et fixe le bit de sélection. |
BTS reg/mem32, reg32 |
0Fh ABh /r |
Copie la valeur du bit de sélection dans le drapeau de retenu et fixe le bit de sélection. |
BTS reg/mem64, reg64 |
0Fh ABh /r |
Copie la valeur du bit de sélection dans le drapeau de retenu et fixe le bit de sélection. |
BTS reg/mem16, imm8 |
0Fh BAh /5 ib |
Copie la valeur du bit de sélection dans le drapeau de retenu et fixe le bit de sélection. |
BTS reg/mem32, imm8 |
0Fh BAh /5 ib |
Copie la valeur du bit de sélection dans le drapeau de retenu et fixe le bit de sélection. |
BTS reg/mem64, imm8 |
0Fh BAh /5 ib |
Copie la valeur du bit de sélection dans le drapeau de retenu et fixe 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 BTR
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 à 73.
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 165 à 167.
Dernière mise à jour : Lundi, le 8 septembre 2014