----------------------------------------------------------------|Код Команда Число Описание ||операции тактовых || циклов || ||0F BD BSR r16,r/m16 6-103/7-104 Поразрядное сканирование || в обратном направлении || слова r/m ||0F BD BSR r32,r/m32 6-103/7-104 Поразрядное сканирование в || обратном направлении || двойного слова в r/m |---------------------------------------------------------------- Работа командыIF r/m = 0THEN ZF <- 1; регистр <- неопределен;ELSE врем <- OperandSize - 1; ZF <- 0; WHILE BIT[r/m,врем] = 0 DO врем <- врем - 1; регистр <- врем; OD;FI; ОписаниеКоманда BSF сканирует биты второго операнда-слова или двойного слова,начиная со старшего бита в направлении к младшему. Если все биты равны 0,то устанавливается флаг ZF; в противном случае флаг ZF очищается, а врегистр назначения загружается индекс первого найденного при сканированиив обратном направлении установленного бита. Изменяемые флагиФлаг ZF устанавливается, если все биты равны 0; в противном случае флаг ZFочищается. Исключения защищенного режима#GP(0), если результат должен помещаться в сегмент, для которого запрещеназапись; #GP(0) в случае недопустимого исполнительного адреса операндапамяти в сегментах CS, DS, ES, FS или GS; #SS(0) в случае недопустимогоадреса в сегменте SS; #PF(код сбоя) в случае страничного сбоя; #AC дляневыравненной ссылки к памяти при текущем уровне привилегированности,равном 3. Исключения режима реальных адресовПрерывание 13, если какая-либо часть операнда лежит вне пространстваисполнительных адресов от 0 до 0FFFFH. Исключения виртуального режима 8086Те же исключения, что и для режима реальных адресов: #PF (код сбоя) длястраничных сбоев; #AC для невыравненной ссылки к памяти при текущем уровнепривилегированности, равном 3.