Asembler x86/Instrukcje/SSSE3/PSIGNx

Z Wikibooks, biblioteki wolnych podręczników.
Przejdź do nawigacji Przejdź do wyszukiwania

PSIGBN, PSIGNW, PSIGND działają — odpowiednio — na wektorach bajtów, słów bądź podwójnych słów ze znakiem, zmieniając znaki tych elementów w argumencie docelowym, dla których odpowiadające im elementy argumentu źródłowego są ujemne.

Np. rozkaz PSIGNW xmm1, xmm2 wykonuje:

 for i:=0 to 7 do
    if xmm2[i] < 0 then
       xmm1[i] := - xmm1[i];

albo zapisując z wykorzystaniem funkcji signum:

 for i:=0 to 7 do
    xmm[i] := xmm1[i] * SIGN(xmm2[i]);