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

Смотри здесь медикаментозный цена. | билеты на елку в пушкинский музей 2016 | ежедневники с логотипом по выгодным ценам от ООО БРЕРАС. | Инвестиции виды здесь еще больше. | Двухъярусная кроватка домик там. |

Логические команды - часть 3


/p>

 

Как видно из примера, для реакции на результат команды test целесообразно использовать команду перехода метка (Jump if Not Zero) — переход, если флаг нуля zf ненулевой, или команду с обратным действием — метка (Jump if Zero) — переход, если флаг нуля zf = 0. 

Следующие две команды позволяют осуществить поиск первого установленного в 1 бита операнда. Поиск можно произвести как с начала так и от конца операнда:

операнд_1,операнд_2 (Bit Scaning Forward) - сканирование битов вперед.


Команда просматривает (сканирует) биты операнд_2 от младшего к старшему (от бита 0 до старшего бита) в поисках первого бита, установленного в 1. Если таковой обнаруживается, в операнд_1 заносится номер этого бита в виде целочисленного значения. Если все биты операнд_2 равны 0, то флаг нуля zf устанавливается в 1, в противном случае флаг zf сбрасывается в 0.

          mov     al,02h         bsf     bx,al   ;bx=1         jz      m1      ;переход, если al=00h         ...   

операнд_1,операнд_2 (Bit Scaning Reset) — сканирование битов в обратном порядке.


Команда просматривает (сканирует) биты операнд_2 от старшего к младшему (от старшего бита к биту 0) в поисках первого бита, установленного в 1. Если таковой обнаруживается, в операнд_1 заносится номер этого бита в виде целочисленного значения.


При этом важно, что позиция первого единичного бита слева отсчитывается все равно относительно бита 0. Если все биты операнд_2 равны 0, то флаг нуля zf устанавливается в 1, в противном случае флаг zf сбрасывается в 0.

Листинг 1 демонстрирует пример применения команд bsr и bsf. Введите код и исследуйте работу программы в отладчике (в частности, обратите внимание на то, как меняется содержимое регистра bx после команд bsf и bsr).




Начало  Назад  Вперед



Книжный магазин