Assembleur 80x86 | PMADDUBSW |
---|---|
SSSE3 | Multiply and Add Packed Signed and Unsigned Bytes |
Syntaxe
PMADDUBSW dest,source |
Description
Cette instruction permet d'effectuer une multiplication vertical de chacun des octets d'un opérande de destination avec les octets (entier) d'un opérande source et produit des entiers 16 bits intermédiaire.
Algorithme
SI opérande dest est 128 bits ALORS dest(15..0) ← SaturateToSignedWord(source(15..8) x dest(15..8) + source(7..0) x dest(7..0)) dest(127..112) ← SaturateToSignedWord(source(127..120) x dest(127..120) + source(119..112) x dest(119..112)) SINON dest(15..0) ← SaturateToSignedWord(source(15..8) x dest(15..8) + source(7..0) x dest(7..0)) dest(31..16) ← SaturateToSignedWord(source(31..24) x dest(31..24) + source(23..16) x dest(23..16)) dest(47..32) ← SaturateToSignedWord(source(47..40) x dest(47..40) + source(39..32) x dest(39..32)) dest(63..48) ← SaturateToSignedWord(source(63..56) x dest(63..56) + source(55..48) x dest(55..48)) FIN SI dest ← (dest ∩ ¬ (masque)) U ((source << (compteur x 16)) ∩ masque) |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
PMADDUBSW mm1, mm2/m64 | 0Fh 38h 04h /r | Cette instruction permet d'effectuer une multiplication vertical de chacun des octets d'un opérande de destination avec les octets (entier) d'un opérande source et produit des entiers 16 bits intermédiaire. |
PMADDUBSW xmm1,xmm2/m128 | 66h 0Fh 38h 04h /r | Cette instruction permet d'effectuer une multiplication vertical de chacun des octets d'un opérande de destination avec les octets (entier) d'un opérande source et produit des entiers 16 bits intermédiaire. |
Références
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2B: Instruction Set Reference, N-Z, Edition Intel, Mars 2010, Publication No. 253667-034US, page 145 à 147.
Dernière mise à jour : Samedi, le 20 septembre 2014