Assembleur 80x86 | BSF |
---|---|
INTEL 80386+ | Bit Scan Forward |
Syntaxe
BSF 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 droite vers la gauche jusqu'à ce que l'on rencontre un bit égal à 1. Le bit correspondant dans Opérande Cible sera alors également mis à 1 et tous les autres équivaudront à 0. Les opérandes peuvent toutefois être 2 registres ou un registre et un emplacement mémoire. Encore un dernier détail, ils doivent naturellement avoir tous les 2 le même type; soit 16 ou 32 bits.
Algorithme
MODULE BSF(Opérande Cible, Opérande Source) SI Opérande Source = 0 ALORS drapeau ZF ← 1 Opérande Cible ← Non définie SINON drapeau ZF ← 0 Index ← 0 FAIRE TANT QUE bit ( Source , Index ) = 0 Index ← Index + 1 Opérande Cible ← Index FIN FAIRE FIN SI |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
BSF reg16, reg/mem16 | 0Fh BCh /r | Balayage de bit vers l'avant du contenu du registre/mémoire 16 bits |
BSF reg32, reg/mem32 | 0Fh BCh /r | Balayage de bit vers l'avant du contenu du registre/mémoire 32 bits |
BSF reg64, reg/mem64 | 0Fh BCh /r | Balayage de bit vers l'avant 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 BSR
Références
Le livre d'Or PC, Martin Althaus, 1992, ISBN: 2-7361-0934-1, page 803
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 65.
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 148 à 150.