Цитата:
Определять знак 24-bit числа можно проверкой "foo > 8388607"?
|
Ну, можно по идеи. А можно, по рекомендации известного Мсье, как-нибудь так:
Код:
mov ebx, eax
shr ebx, 16
movsx bx, bl
shl ebx, 16
or ebx, eax
5 команд вместо двух, зато без сравнения (т.е. быстро) и без jz/jnz (т.е. еще быстрее).
Еще вариант, но не такой прикольный:
Код:
bt eax, 23
jnc @positive
or eax, 0xFF000000
@positive:
Плюс только в том, что вместо вычитания константы просто бит 23 копируется в carry флаг.