Система команд x86 |
|
Программирование - Архитектура и система команд микропроцессоров x86 |
BSF
Влияние команды на флаги и форматы команды:
? |
? |
* |
? |
? |
? |
0F BC |
BSF r16,r/m16 |
Сканирование битов r/m16 вперед |
Intel386 |
bsf ax,bx |
0F BC |
BSF r32,r/m32 |
Сканирование битов r/m32 вперед |
Intel386 |
bsf eax,edx |
Описание:
Команда BSF сканирует биты второго операнда (слово или двойное слово), начиная с бита 0. Если все биты равны нулю, то устанавливается флаг ZF, в противном случае, флаг ZF сбрасывается, и в регистр назначения (первый операнд) помещается номер первого установленного бита.
Операция:
IF SRC = 0
THEN
ZF = 1;
DEST = undefined;
ELSE
ZF = 0;
temp = 0;
WHILE Bit(SRC, temp) = 0
DO
temp = temp + 1;
DEST = temp;
OD;
FI;
Особые ситуации защищенного режима:
#GP(0), если используется некорректный эффективный адрес операнда в памяти в сегментах CS, DS, ES, FS или GS.
#SS(0) при использовании некорректного эффективного адреса в сегменте SS.
#PF(Код ошибки), страничная ошибка.
#AC(0) при невыровненной ссылке в память при текущем уровне привилегий равном 3.
Особые ситуации режима реальной адресации:
#GP, если любая часть операнда находится вне пространства эффективных адресов в сегментах CS, DS, ES, FS или GS.
#SS, если любая часть операнда находится вне пространства эффективных адресов в сегменте SS.
Особые ситуации режима V86:
Такие же, как и в режиме реальной адресации.
#PF(Код ошибки), страничная ошибка.
#AC(0) при невыровненной ссылке в память.
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru