Re[3]: 32->16 (565)
От: Andrew S Россия http://alchemy-lab.com
Дата: 29.01.07 11:22
Оценка:
К сожалению, данный код некорректен, посколько не учитывает возможность ненулевого альфа-байта. При наличии оного, ессно, получается кака.
Маскирование добавляет к нему все те же самые 2 "больших" and.
Ну а во-вторых, что значит "проще"? Это абсолютно разные форматы, и для 5-5-5 отдельные процедуры уже есть
Ну и в третьих — lea с индексными регистрами не есть хорошо.

AS>>Вероятно, и тут еще есть над чем поработать.

M>Мне кажется, удобнее конвертировать в 15-битный формат. Например, так:
M>
M>        mov    eax, [esi + 4]
M>        mov    ebx, [esi]
M>        shr    eax, 3
M>        shr    ebx, 3
M>        shl    al, 3
M>        shl    bl, 3
M>        shl    ax, 3
M>        shl    bx, 3
M>        shl    eax, 10
M>        shr    ebx, 6
M>        or    eax, ebx
M>        lea    esi, esi + 8
M>        mov    [edi], eax
M>        lea    edi, edi + 4
M>
http://www.rusyaz.ru/pr — стараемся писАть по-русски
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.