Справочник по языку Ассемблера IBM PC

BSR


(Bit Scan Reverse)

Побитное сканирование назад

Схема команды:  bsr результат,источник 

Назначение: проверка наличия единичных битов в операнде источник.


Алгоритм работы:

просмотр битов операнда источник, начиная со старшего бита 15/31 и заканчивая битом 0, до тех пор, пока не встретится единичный бит;

если встретился единичный бит, флаг zf устанавливается в 0 и в регистр первого операнда записывается номер позиции (отсчет осуществляется относительно нулевой позиции), где встретился самый старший единичный бит. Диапазон значений зависит от разрядности второго операнда: для 16-разрядного операнда это 0...15; для 32-разрядного — 0...31;

если единичных битов нет, флаг zf устанавливается в 1.



Состояние флагов после выполнения команды:

06
ZF
r

Применение:


Команду bsr используют при работе на битном уровне для определения позиции крайних слева единичных битов.

Например, сдвинем содержимое регистра bx вправо таким образом, чтобы старший единичный бит исходного значения в bx переместился в нулевую позицию:

.386         mov     bx,41h ...         bsr     cx,bx   ;cx=06h         jz      null         shr     bx,ax   ;bx=0001h ... null:...         

См. также: уроки 9, 12 и команду



Содержание раздела