Assembleur 80x86 | MPSADBW |
---|---|
SSE4.1 | Compute Multiple Packed Sums of Absolute Difference |
Syntaxe
MPSADBW dest,source,immediat |
Description
Cette instruction permet d'effectuer le calcul de la somme de la différence absolue (SAD) d'une paire d'octets d'un groupe de 4 octets paires et produit 8 résultats SAD entreposé dans 8 entier contenu dans l'opérande de destination.
Algorithme
SRC_OFFSET ← immediat(1..0) x 32 DEST_OFFSET ← immediat(2) x 32 DEST_BYTE0 ← dest[DEST_OFFSET+7..DEST_OFFSET] DEST_BYTE1 ← dest[DEST_OFFSET+15..DEST_OFFSET+8] DEST_BYTE2 ← dest[DEST_OFFSET+23..DEST_OFFSET+16] DEST_BYTE3 ← dest[DEST_OFFSET+31..DEST_OFFSET+24] DEST_BYTE4 ← dest[DEST_OFFSET+39..DEST_OFFSET+32] DEST_BYTE5 ← dest[DEST_OFFSET+47..DEST_OFFSET+40] DEST_BYTE6 ← dest[DEST_OFFSET+55..DEST_OFFSET+48] DEST_BYTE7 ← dest[DEST_OFFSET+63..DEST_OFFSET+56] DEST_BYTE8 ← dest[DEST_OFFSET+71..DEST_OFFSET+64] DEST_BYTE9 ← dest[DEST_OFFSET+79..DEST_OFFSET+72] DEST_BYTE10 ← dest[DEST_OFFSET+87..DEST_OFFSET+80] SRC_BYTE0 ← source[SRC_OFFSET+7..SRC_OFFSET] SRC_BYTE1 ← source[SRC_OFFSET+15..SRC_OFFSET+8] SRC_BYTE2 ← source[SRC_OFFSET+23..SRC_OFFSET+16] SRC_BYTE3 ← source[SRC_OFFSET+31..SRC_OFFSET+24] TEMP0 ← | DEST_BYTE0 - SRC_BYTE0 | TEMP1 ← | DEST_BYTE1 - SRC_BYTE1 | TEMP2 ← | DEST_BYTE2 - SRC_BYTE2 | TEMP3 ← | DEST_BYTE3 - SRC_BYTE3 | dest(15..0) ← TEMP0 + TEMP1 + TEMP2 + TEMP3 TEMP0 ← | DEST_BYTE1 - SRC_BYTE0 | TEMP1 ← | DEST_BYTE2 - SRC_BYTE1 | TEMP2 ← | DEST_BYTE3 - SRC_BYTE2 | TEMP3 ← | DEST_BYTE4 - SRC_BYTE3 | dest(31..16) ← TEMP0 + TEMP1 + TEMP2 + TEMP3 TEMP0 ← | DEST_BYTE2 - SRC_BYTE0 | TEMP1 ← | DEST_BYTE3 - SRC_BYTE1 | TEMP2 ← | DEST_BYTE4 - SRC_BYTE2 | TEMP3 ← | DEST_BYTE5 - SRC_BYTE3 | dest(47..32) ← TEMP0 + TEMP1 + TEMP2 + TEMP3 TEMP0 ← | DEST_BYTE3 - SRC_BYTE0 | TEMP1 ← | DEST_BYTE4 - SRC_BYTE1 | TEMP2 ← | DEST_BYTE5 - SRC_BYTE2 | TEMP3 ← | DEST_BYTE6 - SRC_BYTE3 | dest(63..48) ← TEMP0 + TEMP1 + TEMP2 + TEMP3 TEMP0 ← | DEST_BYTE4 - SRC_BYTE0 | TEMP1 ← | DEST_BYTE5 - SRC_BYTE1 | TEMP2 ← | DEST_BYTE6 - SRC_BYTE2 | TEMP3 ← | DEST_BYTE7 - SRC_BYTE3 | dest(79..64) ← TEMP0 + TEMP1 + TEMP2 + TEMP3 TEMP0 ← | DEST_BYTE5 - SRC_BYTE0 | TEMP1 ← | DEST_BYTE6 - SRC_BYTE1 | TEMP2 ← | DEST_BYTE7 - SRC_BYTE2 | TEMP3 ← | DEST_BYTE8 - SRC_BYTE3 | dest(95..80) ← TEMP0 + TEMP1 + TEMP2 + TEMP3 TEMP0 ← | DEST_BYTE6 - SRC_BYTE0 | TEMP1 ← | DEST_BYTE7 - SRC_BYTE1 | TEMP2 ← | DEST_BYTE8 - SRC_BYTE2 | TEMP3 ← | DEST_BYTE9 - SRC_BYTE3 | dest(111..96) ← TEMP0 + TEMP1 + TEMP2 + TEMP3 TEMP0 ← | DEST_BYTE7 - SRC_BYTE0 | TEMP1 ← | DEST_BYTE8 - SRC_BYTE1 | TEMP2 ← | DEST_BYTE9 - SRC_BYTE2 | TEMP3 ← | DEST_BYTE10 - SRC_BYTE3 | dest(127..112) ← TEMP0 + TEMP1 + TEMP2 + TEMP3 |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
MPSADBW xmm1,xmm2/m128,imm8 | 66h 0Fh 3Ah 42h /r ib | Cette instruction permet d'effectuer le calcul de la somme de la différence absolue (SAD) d'une paire d'octets d'un groupe de 4 octets paires et produit 8 résultats SAD entreposé dans 8 entier contenu dans l'opérande de destination. |
Références
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2A: Instruction Set Reference, A-M, Edition Intel, Mars 2010, Publication No. 253666-034US, page 820 à 823.
Dernière mise à jour : Samedi, le 20 septembre 2014