Re[4]: Оператор in
От: dar veter Россия  
Дата: 04.11.03 06:58
Оценка:
Здравствуйте, Andrew S, Вы писали:

AS>Итак, в результате мы получаем в минимуме 3 сдвига, 3 сравнения и 3 сложения. Достаточно оптимально, не правда ли?


Вообщем различные эксперементы и показания профилировщика, показали что самый быстрый метод в моей задаче оказался этот:
bool IsSignalOne(WORD w)
{
__asm {
        movzx eax,w;
        cmp ax,0x7e7e;
        jz go_true;
        movzx ecx,al;
        not cl;
        bsr ecx,cl;
        ror ax,cl;
        cmp ax,0x7e7e;
        jnz go_false;
go_true:
        mov eax,1;
        jmp go_end;
go_false:
        xor eax,eax;
go_end:
    }
}


На Пенке 700Mgz данный код выполняется ~50 наносек, сгенерированый код компилятором для switch выполняется ~120 наносек.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.