Schiebe-Befehle |
---|
Die PSLL-Befehle schieben die Bits der gepackten Datenelemente des Zieloperanden um die im zweiten Operanden (Quelloperand) angegebene Anzahl Binärstellen nach links. Von rechts werden dabei 0-Bits nachgeschoben. Das Ergebnis der Verschiebung befindet sich im Zieloperanden.
Anmerkungen:
Der PSLLW-Befehl verschiebt die vier gepackten Word-Datenelemente des Zieloperanden um die Anzahl Binärstellen nach links, die im Quelloperanden angegeben wird. Soll um mehr als 15 Stellen verschoben werden, so wird der Zieloperand auf den Wert 0 gesetzt.
Der PSLLD-Befehl verschiebt die gepackten Doubleword-Datenelemente des Zieloperanden um die Anzahl Binärstellen nach Links, die im Quelloperanden angegeben wird. Soll um mehr als 31 Stellen verschoben werden, so wird der Zieloperand auf den Wert 0 gesetzt.
Der PSLLQ-Befehl verschiebt das Quadword im Zieloperanden um die Anzahl Binärstellen nach links, die im Quelloperanden angegeben wird. Soll um mehr als 63 Stellen verschoben werden, so wird der Zieloperand auf den Wert 0 gesetzt.
MM0= 0305 A280 1005 FFFFh (= 0000 0011 0000 0101 1010 0010 1000 0000 0001 0000 0000 0101 1111 1111 1111 1111b) MM1= 1 PSLLW MM0, MM1 Ergebnis in MM0= 060A 4500 200A FFFEh (= 0000 0110 0000 1010 0100 0101 0000 0000 0010 0000 0000 1010 1111 1111 1111 1110b)
Die PSRL-Befehle schieben die Bits der gepackten Datenelemente des Zieloperanden um die im zweiten Operanden (Quelloperand) angegebene Anzahl Binärstellen nach rechts. Von links werden dabei 0-Bits nachgeschoben. Das Ergebnis der Verschiebung befindet sich im Zieloperanden.
Der PSRLW-Befehl verschiebt die vier gepackten Word-Datenelemente des Zieloperanden um die Anzahl Binärstellen nach rechts, die im Quelloperanden angegeben wird. Soll um mehr als 15 Stellen verschoben werden, so wird der Zieloperand auf den Wert 0 gesetzt.
Der PSRLD-Befehl verschiebt die gepackten Doubleword-Datenelemente des Zieloperanden um die Anzahl Binärstellen nach rechts, die im Quelloperanden angegeben wird. Soll um mehr als 31 Stellen verschoben werden, so wird der Zieloperand auf den Wert 0 gesetzt.
Der PSRLQ-Befehl verschiebt das Quadword im Zieloperanden um die Anzahl Binärstellen nach rechts, die im Quelloperanden angegeben wird. Soll um mehr als 63 Stellen verschoben werden, so wird der Zieloperand auf den Wert 0 gesetzt.
MM0= 0305 A280 1005 FFFFh (= 0000 0011 0000 0101 1010 0010 1000 0000 0001 0000 0000 0101 1111 1111 1111 1111b) MM1= 1 PSRLW MM0, MM1 Ergebnis in MM0= 0182 5140 0802 7FFFh (= 0000 0001 1000 0010 0101 0001 0100 0000 0000 1000 0000 0010 0111 1111 1111 1111b)
Die PSRA-Befehle schieben die Bits der gepackten Datenelemente des Zieloperanden um die im zweiten Operanden (Quelloperand) angegebene Anzahl Binärstellen nach rechts. Von links werden dabei 0-Bits nachgeschoben. Dabei wird das Vorzeichen des Zieloperanden nicht beeinflußt, d.h. die gepackten Werte im Zieloperanden besitzen nach der Verschiebung das gleiche Vorzeichen wie vor der Verschiebung. Das Ergebnis der Verschiebung befindet sich im Zieloperanden.
Der PSRAW-Befehl verschiebt die vier vorzeichenbehafteten, gepackten Word-Datenelemente des Zieloperanden um die Anzahl Binärstellen nach rechts, die im Quelloperanden angegeben wird. Soll um mehr als 15 Stellen verschoben werden, so wird der Zieloperand in Abhängigkeit des Vorzeichenbits auf den Wert 0 (positiv) oder -1 (=FFFFh) (negativ) gesetzt.
Der PSRAD-Befehl verschiebt die vorzeichenbehafteten, gepackten Doubleword-Datenelemente des Zieloperanden um die Anzahl Binärstellen nach rechts, die im Quelloperanden angegeben wird. Soll um mehr als 31 Stellen verschoben werden, so wird der Zieloperand in Abhängigkeit des Vorzeichenbits auf den Wert 0 (positiv) oder -1 (=FFFFh) (negativ) gesetzt.
MM0= 0305 A280 1005 FFFFh (= 0000 0011 0000 0101 1010 0010 1000 0000 0001 0000 0000 0101 1111 1111 1111 1111b) MM1= 1 PSRAW MM0, MM1 Ergebnis in MM0= 0182 D140 0802 FFFFh (= 0000 0001 1000 0010 1101 0001 0100 0000 0000 1000 0000 0010 1111 1111 1111 1111b)