Assembleur 80x86 | PSIGNB |
---|---|
SSSE3 | Packed Sign Byte |
Syntaxe
PSIGNB destination, source |
Description
Cette instruction permet d'effectuer la négation de chaque octets de l'opérande de destination si la valeur du signe de l'entier des octets correspondant à l'opérande source est inférieur à 0.
Algorithme
SI taille de l'opérande = 64 bits ALORS SI source(7..0) < 0 ALORS destination(7..0) ← Neg(destination(7..0)) SINON SI source(7..0) = 0 ALORS DEST(7..0) ← 0 SINON SI source(7..0) > 0 ALORS destination(7..0) ← destination(7..0) FIN SI SI source(15..8) < 0 ALORS destination(15..8) ← Neg(destination(15..8)) SINON SI source(15..8) = 0 ALORS destination(15..8) ← 0 SINON SI source(15..8) > 0 ALORS destination(15..8) ← destination(15..8) FIN SI SI source(23..16) < 0 ALORS destination(23..16) ← Neg(destination(23..16)) SINON SI source(23..16) = 0 ALORS destination(23..16) ← 0 SINON SI source(23..16) > 0 ALORS destination(23..16) ← destination(23..16) FIN SI SI source(31..24) < 0 ALORS destination(31..24) ← Neg(destination(31..24)) SINON SI source(31..24) = 0 ALORS destination(31..24) ← 0 SINON SI source(31..24) > 0 ALORS destination(31..24) ← destination(31..24) FIN SI SI source(39..32) < 0 ALORS destination(39..32) ← Neg(destination(39..32)) SINON SI source(39..32) = 0 ALORS destination(39..32) ← 0 SINON SI source(39..32) > 0 ALORS destination(39..32) ← destination(39..32) FIN SI SI source(47..40) < 0 ALORS destination(47..40) ← Neg(destination(47..40)) SINON SI source(47..40) = 0 ALORS destination(47..40) ← 0 SINON SI source(47..40) > 0 ALORS destination(47..40) ← destination(47..40) FIN SI SI source(55..48) < 0 ALORS destination(55..48) ← Neg(destination(55..48)) SINON SI source(55..48) = 0 ALORS destination(55..48) ← 0 SINON SI source(55..48) > 0 ALORS destination(55..48) ← destination(55..48) FIN SI SI source(63..56) < 0 ALORS destination(63..56) ← Neg(destination(63..56)) SINON SI source(63..56) = 0 ALORS destination(63..56) ← 0 SINON SI source(63..56) > 0 ALORS destination(63..56) ← destination(63..56) FIN SI SINON SI taille de l'opérande = 128 bits ALORS SI source(7..0) < 0 ALORS destination(7..0) ← Neg(destination(7..0)) SINON SI source(7..0) = 0 ALORS destination(7..0) ← 0 SINON SI source(7..0) > 0 ALORS destination(7..0) ← destination(7..0) FIN SI SI source(15..8) < 0 ALORS destination(15..8) ← Neg(destination(15..8)) SINON SI source(15..8) = 0 ALORS destination(15..8) ← 0 SINON SI source(15..8) > 0 ALORS destination(15..8) ← destination(15..8) FIN SI SI source(23..16) < 0 ALORS destination(23..16) ← Neg(destination(23..16)) SINON SI source(23..16) = 0 ALORS destination(23..16) ← 0 SINON SI source(23..16) > 0 ALORS destination(23..16) ← destination(23..16) FIN SI SI source(31..24) < 0 ALORS destination(31..24) ← Neg(destination(31..24)) SINON SI source(31..24) = 0 ALORS destination(31..24) ← 0 SINON SI source(31..24) > 0 ALORS destination(31..24) ← destination(31..24) FIN SI SI source(39..32) < 0 ALORS destination(39..32) ← Neg(destination(39..32)) SINON SI source(39..32) = 0 ALORS destination(39..32) ← 0 SINON SI source(39..32) > 0 ALORS destination(39..32) ← destination(39..32) FIN SI SI source(47..40) < 0 ALORS destination(47..40) ← Neg(destination(47..40)) SINON SI source(47..40) = 0 ALORS destination(47..40) ← 0 SINON SI source(47..40) > 0 ALORS destination(47..40) ← destination(47..40) FIN SI SI source(55..48) < 0 ALORS destination(55..48) ← Neg(destination(55..48)) SINON SI source(55..48) = 0 ALORS destination(55..48) ← 0 SINON SI source(55..48) > 0 ALORS destination(55..48) ← destination(55..48) FIN SI SI source(63..56) < 0 ALORS destination(63..56) ← Neg(destination(63..56)) SINON SI source(63..56) = 0 ALORS destination(63..56) ← 0 SINON SI source(63..56) > 0 ALORS destination(63..56) ← destination(63..56) FIN SI SI source(71..64) < 0 ALORS destination(71..64) ← Neg(destination(71..64)) SINON SI source(71..64) = 0 ALORS destination(71..64) ← 0 SINON SI source(71..64) > 0 ALORS destination(71..64) ← destination(71..64) FIN SI SI source(79..72) < 0 ALORS destination(79..72) ← Neg(destination(79..72)) SINON SI source(79..72) = 0 ALORS destination(79..72) ← 0 SINON SI source(79..72) > 0 ALORS destination(79..72) ← destination(79..72) FIN SI SI source(87..80) < 0 ALORS destination(87..80) ← Neg(destination(87..80)) SINON SI source(87..80) = 0 ALORS destination(87..80) ← 0 SINON SI source(87..80) > 0 ALORS destination(87..80) ← destination(87..80) FIN SI SI source(95..88) < 0 ALORS destination(95..88) ← Neg(destination(95..88)) SINON SI source(95..88) = 0 ALORS destination(95..88) ← 0 SINON SI source(95..88) > 0 ALORS destination(95..88) ← destination(95..88) FIN SI SI source(103..96) < 0 ALORS destination(103..96) ← Neg(destination(103..96)) SINON SI source(103..96) = 0 ALORS destination(103..96) ← 0 SINON SI source(103..96) > 0 ALORS destination(103..96) ← destination(103..96) FIN SI SI source(111..104) < 0 ALORS destination(111..104) ← Neg(destination(111..104)) SINON SI source(111..104) = 0 ALORS destination(111..104) ← 0 SINON SI source(111..104) > 0 ALORS destination(111..104) ← destination(111..104) FIN SI SI source(119..112) < 0 ALORS destination(119..112) ← Neg(destination(119..112)) SINON SI source(119..112) = 0 ALORS destination(119..112) ← 0 SINON SI source(119..112) > 0 ALORS destination(119..112) ← destination(119..112) FIN SI SI source(127..120) < 0 ALORS destination(127..120) ← Neg(destination(127..120)) SINON SI source(127..120) = 0 ALORS destination(127..120) ← 0 SINON SI SRC(127..120) > 0 ALORS destination(127..120) ← destination(127..120) FIN SI FIN SI |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
PSIGNB mm1,mm2/m64 | 0Fh 38h 08h /r | Cette instruction permet d'effectuer la négation de chaque octets de l'opérande de destination si la valeur du signe de l'entier des octets correspondant à l'opérande source est inférieur à 0. |
PSIGNB xmm1,xmm2/m128 | 66h 0Fh 38h 08h /r | Cette instruction permet d'effectuer la négation de chaque octets de l'opérande de destination si la valeur du signe de l'entier des octets correspondant à l'opérande source est inférieur à 0. |
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 264 à 269.
Dernière mise à jour : Vendredi, le 5 septembre 2014