Я использую Visual Studio 2010 professional, и я только что проверил в режиме отладки, что BSF не работает, я перепробовал много комбинаций, ни одна из них не сработала!
__asm
{
mov ebx, 0ffffffh;
bsf ecx, ebx;
};
приведенный выше код, по крайней мере, дает мне некоторые результаты, но я получил 0 в регистре ecx (я использую 64-битную win7, а приложение 32-битное)
Вот что Intel говорит о BSF:
Поиск операнда источника (второй
операнд) для наименее значимого множества
бит (1 бит). Если наименее значимый 1
бит найден, его битовый индекс сохранен
в операнде назначения (первый
операнд). Операндом-источником может быть
регистр или ячейка памяти;
целевой операнд является регистром.
Битовый индекс - беззнаковое смещение от
бит 0 исходного операнда. Если
содержание исходного операнда равно 0,
содержание операнда назначения
не определено.
У кого-нибудь есть мысли? Спасибо всем ...