Assembleur 80x86 | BSR |
---|---|
INTEL 80386+ | Bit Scan Reverse |
Syntaxe
BSR Opérande Cible, Opérande Source |
Paramètres
Nom | Description |
---|---|
Opérande Cible | Ce paramètre permet d'indiquer l'opérande recevant le résultat |
Opérande Source | Ce paramètre permet d'indiquer l'opérande contenant la valeur à traiter |
Description
La combinaison binaire contenu dans l'Opérande Source est analysée de la gauche vers la droite jusqu'à ce que l'on rencontre un bit égal à 1. Le bit correspondant dans Opérande Cible sera ensuite mis à 1 et tous les autres équivaudront à 0. Les opérandes peuvent toutefois être 2 registres ou un registre et un emplacement mémoire. Les 2 opérandes doivent naturellement avoir le même type; soit 16 ou 32 bits.
Algorithme
MODULE BSR(Opérande Cible, Opérande Source) SI ( Registre Destination DANS [ AX , BX, CX , DX , SI , DI , BP , SP ] ) ALORS Début ← 15 SINON Début ← 31 FIN SI SI Source = 0 ALORS drapeau ZF ← 1 Destination ← Non définie SINON drapeau ZF ← 0 Index ← Début FAIRE TANT QUE bit ( Source , Index ) = 0 Index ← Index - 1 Destination ← Index FIN FAIRE FIN SI |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
BSR reg16, reg/mem16 | 0Fh BDh /r | Balayage de bit vers l'arrière du contenu du registre/mémoire 16 bits |
BSR reg32, reg/mem32 | 0Fh BDh /r | Balayage de bit vers l'arrière du contenu du registre/mémoire 32 bits |
BSR reg64, reg/mem64 | 0Fh BDh /r | Balayage de bit vers l'arrière du contenu du registre/mémoire 64 bits |
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 BSF
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 66.
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 151 à 153.