logo search
КС-ZAO / Лекции ЦЭВМруский вариант11

Просмотр битов

Для нахождения первого или последнего ненулевого бита операнда размером в слово или двойное слово полезно использовать инструкции BSF и BSR. Инструкция BSF просматривает исходный операнд, начиная с бита 0 (младший бит), определяя первый ненулевой бит. Если все биты операнда-источника являются нулевыми, то флаг нуля очищается. В противном случае флаг нуля устанавливается, а в целевой регистр (приемник) копируется номер первого найденного ненулевого бита.

Второй операнд инструкции BFS - это 16- или 32-разрядный общий регистр или просматриваемая ячейка памяти, а первый операнд - это 16- или 32-разрядный общий регистр, в который будет записываться номер первого ненулевого бита в просматриваемых данных. Оба операнда должны иметь одинаковый размер.

Инструкция BSR аналогична инструкции BFS, но просмотр она начинает со старшего (наиболее значащего) бита операнда-источника к младшему биту.

Перемещение данных с расширением по знаку или нулю

Инструкции MOVZX и MOVSX позволяют вам копировать 8- или 16- разрядное значение в 16- или 32-разрядный общий регистр без необходимости использования лишних инструкций для расширения значения до заданного размера. Инструкция MOVZX заполняет старшие биты приемника нулями, а инструкция MOVSX распространяет знак значения в соответствии с размером приемника. Обе инструкции аналогичны стандартной инструкции MOV.