1 <!DOCTYPE HTML PUBLIC
"-//IETF//DTD HTML 2.0//EN">
4 <TITLE>80386 Programmer's Reference Manual -- Opcode BSF
</TITLE>
7 <B>up:
</B> <A HREF=
"c17.htm">
8 Chapter
17 --
80386 Instruction Set
</A><BR>
9 <B>prev:
</B><A HREF=
"BOUND.htm"> BOUND Check Array Index Against Bounds
</A><BR>
10 <B>next:
</B><A HREF=
"BSR.htm"> BSR Bit Scan Reverse
</A>
14 <H1>BSF -- Bit Scan Forward
</H1>
17 Opcode Instruction Clocks Description
19 0F BC BSF r16,r/m16
10+
3n Bit scan forward on r/m word
20 0F BC BSF r32,r/m32
10+
3n Bit scan forward on r/m dword
25 is the number of leading zero bits.
33 register := UNDEFINED;
37 WHILE BIT[r/m, temp =
0]
47 BSF scans the bits in the second word or doubleword operand starting with
48 bit
0. The ZF flag is cleared if the bits are all
0; otherwise, the ZF flag
49 is set and the destination register is loaded with the bit index of the
52 <H2>Flags Affected
</H2>
56 <H2>Protected Mode Exceptions
</H2>
58 #GP(
0) for an illegal memory operand effective address in the CS, DS, ES,
59 FS, or GS segments; #SS(
0) for an illegal address in the SS segment;
60 #PF(fault-code) for a page fault
62 <H2>Real Address Mode Exceptions
</H2>
64 Interrupt
13 if any part of the operand would lie outside of the effective
65 address space from
0 to
0FFFFH
67 <H2>Virtual
8086 Mode Exceptions
</H2>
69 Same exceptions as in Real Address Mode; #PF(fault-code) for a page fault
75 <B>up:
</B> <A HREF=
"c17.htm">
76 Chapter
17 --
80386 Instruction Set
</A><BR>
77 <B>prev:
</B><A HREF=
"BOUND.htm"> BOUND Check Array Index Against Bounds
</A><BR>
78 <B>next:
</B><A HREF=
"BSR.htm"> BSR Bit Scan Reverse
</A>