up: 
Chapter 17 -- 80386 Instruction Set
prev: BSF Bit Scan Forward
next: BT Bit Test 
BSR -- Bit Scan Reverse
Opcode    Instruction          Clocks    Description
0F  BD    BSR r16,r/m16        10+3n     Bit scan reverse on r/m word
0F  BD    BSR r32,r/m32        10+3n     Bit scan reverse on r/m dword
Operation
IF r/m = 0
THEN
   ZF := 1;
   register := UNDEFINED;
ELSE
   temp := OperandSize - 1;
   ZF := 0;
   WHILE BIT[r/m, temp] = 0
   DO
      temp := temp - 1;
      register := temp;
   OD;
FI;
Description
BSR scans the bits in the second word or doubleword operand from the most
significant bit to the least significant bit. The ZF flag is cleared if the
bits are all 0; otherwise, ZF is set and the destination register is loaded
with the bit index of the first set bit found when scanning in the reverse
direction.
Flags Affected
ZF as described above
Protected Mode Exceptions
#GP(0) if the result is in a nonwritable segment; #GP(0) for an illegal
memory operand effective address in the CS, DS, ES, FS, or GS segments;
#SS(0) for an illegal address in the SS segment; #PF(fault-code) for a page
fault
Real Address Mode Exceptions
Interrupt 13 if any part of the operand would lie outside of the effective
address space from 0 to 0FFFFH
Virtual 8086 Mode Exceptions
Same exceptions as in Real Address Mode; #PF(fault-code) for a page fault
up: 
Chapter 17 -- 80386 Instruction Set
prev: BSF Bit Scan Forward
next: BT Bit Test