как преобразовать с помощью инструкций MMX массив целых чисел размера BYTE mass[size] выбрав из него по порядку четные и нечетный числа? BYTE mass[] = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 BYTE result[] = {even, odd} = 0,2,4,6,8,10,12,14,1,3,5,7,9,11,13,15
Код (Text): movq mm7,qword [mask_00FF00FF00FF00FF];маску вообще перед циклом нужно загрузить movq mm0,[esi] movq mm2,mm7 movq mm1,[esi+8] movq mm3,mm7 pand mm2,mm0 pand mm3,mm1 psrlw mm0,8 packuswb mm2,mm3;в mm2 чётные байты psrlw mm1,8 packuswb mm0,mm1;в mm0 нечётные байты mask_00FF00FF00FF00FF dw 255,255,255,255 сдвиги на MMX параллельно с другими инструкциями вроде выполняться не могут, но код на оптимальность и завершенность совсем не претендует