A.5.15 BSF, BSR: Bit Scan
BSF reg16,r/m16 ; o16 0F BC /r [386]
BSF reg32,r/m32 ; o32 0F BC /r [386]
BSR reg16,r/m16 ; o16 0F BD /r [386]
BSR reg32,r/m32 ; o32 0F BD /r [386]
- BSF searches for the least significant set bit in its source
(second) operand, and if it finds one, stores the index in its
destination (first) operand. If no set bit is found, the contents
of the destination operand are undefined. If the source operand is
zero, the zero flag is set.
- BSR performs the same function, but searches from the top instead,
so it finds the most significant set bit.
Bit indices are from 0 (least significant) to 15 or 31 (most
significant). The destination operand can only be a register. The source
operand can be a register or a memory location.