Section courante

A propos

Section administrative du site

Assembleur 80x86

PSIGNW

SSSE3 Packed Sign Word

Syntaxe

PSIGNW destination, source

Description

Cette instruction permet d'effectuer la négation de chaque mots de l'opérande de destination si la valeur du signe de l'entier des mots correspondant à l'opérande source est inférieur à 0.

Algorithme

SI taille de l'opérande = 64 bits ALORS
   SI source(15..0) < 0 ALORS
      destination(15..0) ← Neg(destination(15..0))
   SINON SI source(15..0) = 0 ALORS
      destination(15..0) ← 0
   SINON SI source(15..0) > 0 ALORS
      destination(15..0) ← destination(15..0)
   FIN SI    SI source(31..16) < 0 ALORS
      destination(31..16) ← Neg(destination(31..16))
   SINON SI source(31..16) = 0 ALORS
      destination(31..16) ← 0
   SINON SI source(31..16) > 0 ALORS
      destination(31..16) ← destination(31..16)
   FIN SI    SI source(47..32) < 0 ALORS
      destination(47..32) ← Neg(destination(47..32))
   SINON SI source(47..32) = 0 ALORS
      destination(47..32) ← 0
   SINON SI source(47..32) > 0 ALORS
      destination(47..32) ← destination(47..32)
   FIN SI    SI source(63..48) < 0 ALORS
      destination(63..48) ← Neg(destination(63..48))
   SINON SI source(63..48) = 0 ALORS
      destination(63..48) ← 0
   SINON SI source(63..48) > 0 ALORS
      destination(63..48) ← destination(63..48)
   FIN SI SINON SI taille de l'opérande = 128 bits ALORS
   SI source(15..0) < 0 ALORS
      destination(15..0) ← Neg(destination(15..0))
   SINON SI source(15..0) = 0 ALORS
      destination(15..0) ← 0
   SINON SI source(15..0) > 0 ALORS
      destination(15..0) ← destination(15..0)
   FIN SI
   SI source(31..16) < 0 ALORS
      destination(31..16) ← Neg(destination(31..16))
   SINON SI source(31..16) = 0 ALORS
      destination(31..16) ← 0
   SINON SI source(31..16) > 0 ALORS
      destination(31..16) ← destination(31..16)
   FIN SI
   SI source(47..32) < 0 ALORS
      destination(47..32) ← Neg(destination(47..32))
   SINON SI source(47..32) = 0 ALORS
      destination(47..32) ← 0
   SINON SI source(47..32) > 0 ALORS
      destination(47..32) ← destination(47..32)
   FIN SI
   SI source(63..48) < 0 ALORS
      destination(63..48) ← Neg(destination(63..48))
   SINON SI source(63..48) = 0 ALORS
      destination(63..48) ← 0
   SINON SI source(63..48) > 0 ALORS
      destination(63..48) ← destination(63..48)
   FIN SI
   SI source(79..64) < 0 ALORS
      destination(79..64) ← Neg(destination(79..64))
   SINON SI source(79..64) = 0 ALORS
      destination(79..64) ← 0
   SINON SI source(79..64) > 0 ALORS
      destination(79..64) ← destination(79..64)
   FIN SI
   SI source(95..80) < 0 ALORS
      destination(95..80) ← Neg(destination(95..80))
   SINON SI source(95..80) = 0 ALORS
      destination(95..80) ← 0
   SINON SI source(95..80) > 0 ALORS
      destination(95..80) ← destination(95..80)
   FIN SI
   SI source(111..96) < 0 ALORS
      destination(111..96) ← Neg(destination(111..96))
   SINON SI source(111..96) = 0 ALORS
      destination(111..96) ← 0
   SINON SI source(111..96) > 0 ALORS
      destination(111..96) ← destination(15..0)
   FIN SI
   SI source(127..112) < 0 ALORS
      destination(127..112) ← Neg(destination(127..112))
   SINON SI source(127..112) = 0 ALORS
      destination(127..112) ← 0
   SINON SI source(127..112) > 0 ALORS
      destination(127..112) ← destination(127..112)
   FIN SI
FIN SI

Mnémonique

Instruction Opcode Description
PSIGNW mm1,mm2/m64 0Fh 38h 09h /r Cette instruction permet d'effectuer la négation de chaque mots de l'opérande de destination si la valeur du signe de l'entier des mots correspondant à l'opérande source est inférieur à 0.
PSIGNW xmm1,xmm2/m128 66h 0Fh 38h 09h /r Cette instruction permet d'effectuer la négation de chaque mots de l'opérande de destination si la valeur du signe de l'entier des mots 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