В регистре в младших разрядах сидит значение: MOVD MM0,EAX // 00 00 00 00 B7 58 58 58 в MM1 находится множитель (B7) // 00 B7 00 B7 00 B7 00 B7 Как теперь умножить каждый из этих 4-х байт (B7 58 58 58) на B7, а результат (word) поделить соответственно на 256 (shr 8)? Подскажите, плиз?
Код (Text): pxor mm3, mm3 punpcklbw mm0, mm3 pmullw mm0, mm1 psrlw mm0, 8 Вроде так Последнюю команду может можно как заменить, хз
KeSqueer Да, похоже так, спасибо. Только вот смущает, что не соблюдается paring в первых двух строчках: целевой регистр ММХ-инструкции, попавшей в u-конвейер, не должен совпадать с регистром-источником инструкции, попавшей на v-конвейер.
Relic У тебя еще сохранился PMMX ? В P2 и выше никаких u\v конвееров нет, и за счет изменения порядка выполнения микроопераций независимый pxor может выполниться раньше movd mm0,eax