(Bit Scan Reverse)
Побитное сканирование назад
Схема команды:
| bsr результат,источник
|
Назначение: проверка наличия единичных битов в операнде источник.
Синтаксис
Алгоритм работы:
- просмотр битов операнда источник, начиная со старшего бита 15/31 и заканчивая битом 0, до тех пор, пока не встретится единичный бит;
- если встретился единичный бит, флаг zf устанавливается в 0 и в регистр первого операнда записывается номер позиции (отсчет осуществляется относительно нулевой позиции), где встретился самый старший единичный бит. Диапазон значений зависит от разрядности второго операнда: для 16-разрядного операнда это 0...15; для 32-разрядного — 0...31;
- если единичных битов нет, флаг zf устанавливается в 1.
Состояние флагов после выполнения команды:
Применение:
Команду bsr используют при работе на битном уровне для определения позиции крайних слева единичных битов.
Например, сдвинем содержимое регистра bx вправо таким образом, чтобы старший единичный бит исходного значения в bx переместился в нулевую позицию:
.386 mov bx,41h... bsr cx,bx ;cx=06h jz null shr bx,ax ;bx=0001h...null:... |
См. также: уроки 9, 12 и команду bsf