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