Section courante

A propos

Section administrative du site

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