Задачка обратная задачке 5. Есть восемь рядом расположенных массивов полученных по задачке 5 - получить массив из которого они были созданны.
Код (Text): a_merge:;(a_in +4, a_out +8, len +12) xchg esi,[esp+4] xchg edi,[esp+8] push ebx push ebp ;+8 mov ebp,[8+esp+12] ;len shr ebp,3 neg ebp .next: repeat 4 shl ebx,8 mov bl,[esi] sub esi,ebp end repeat repeat 4 shl eax,8 mov al,[esi] sub esi,ebp end repeat repeat 8 mov ecx,1010101h mov edx,1010101h and ecx,eax and edx,ebx imul ecx,01020408h imul edx,10204080h or ecx,edx shr ecx,24 mov [edi],cl inc edi shr eax,1 shr ebx,1 end repeat lea esi,[esi+ebp*8+1] sub dword [8+esp+12],8 ja .next pop ebp pop ebx ;+0 mov esi,[esp+4] mov edi,[esp+8] ret 12