Arithmetische Befehle |
---|
Die hier dargestellten PADD-Befehle addieren die gepackten Datenelemente im Quelloperanden zu den gepackten Datenelementen im Zieloperanden. Das Ergebnis dieser Addition befindet sich im Zieloperanden und wird keiner Saturation unterzogen. Das heißt, im entsprechend gepackten Datenfeld befinden sich (im Falle eines Überlaufs) jeweils nur die unteren Bits (bei Byte die unteren 8-Bit, bei Word die unteren 16-Bit und bei Doubleword die unteren 32-Bit) des korrekten Ergebnisses.
MM0= 03 70 00 20 01 A1 E2 F2h ; Zieloperand MM1= 40 40 40 40 40 40 40 40h ; Quelloperand PADDB MM0, MM1 ; Addition der gepackten ; Bytedaten in MM1 auf die ; gepackten Bytedaten in MM0 ; (ohne Saturation !) Ergebnis in MM0= 43 B0 40 60 41 E1 22 32h
PADDSB register, memory/register -- ADDition von
gePackten Bytedaten mit Signed Saturation PADDSW register, memory/register -- ADDition von gePackten Word-Daten mit Signed Saturation |
---|
Die PADDS-Befehle addieren die gepackten Datenelemente im Quelloperanden zum Zieloperanden. Dabei wird im Fall eines Über- oder Unterlaufs das Ergebnis einer vorzeichenbehafteten Saturation unterzogen.
PADDSB addiert die gepackten Bytedaten im Quelloperanden zu den gepackten Bytedaten im Zieloperanden. Das Ergebnis der Addition befindet sich im Zieloperanden. Bei einem Überlauf wird das entsprechende Byte auf den Wert 7Fh (127d) und bei einem Unterlauf auf den Wert 80h (-128d) gesetzt.
PADDSW addiert die gepackten Word-Daten im Quelloperanden zu den gepackten Word-Daten im Zieloperanden. Das Ergebnis der Addition befindet sich im Zieloperanden. Bei einem Überlauf wird das entsprechende Wort auf den Wert 7FFFh (32767d) und bei einem Unterlaufs auf den Wert 8000h (-32768d) gesetzt.
MM0= 03 70 00 20 01 A1 E2 F2h ; Zieloperand MM1= 40 40 40 40 40 40 40 40h ; Quelloperand PADDSB MM0, MM1 ; Addition der gepackten ; Bytedaten in MM1 auf die ; gepackten Bytedaten in MM0 ; (mit Signed Saturation !) Ergebnis in MM0= 43 7F 40 60 41 E1 22 32h
PADDUSB register, memory/register -- ADDition von
gePackten Bytedaten mit UnSigned Saturation PADDUSW register, memory/register -- ADDition von gePackten Word-Daten mit UnSigned Saturation |
---|
Die PADDUS-Befehle addieren die gepackten Datenelemente im Quelloperanden zum Zieloperanden. Dabei wird im Fall eines Überlaufs das Ergebnis einer vorzeichenlosen Saturation unterzogen.
PADDUSB addiert die gepackten Bytedaten im Quelloperanden zu den gepackten Bytedaten im Zieloperanden. Das Ergebnis der Addition befindet sich im Zieloperanden. Bei einem Überlauf wird das entsprechende Byte auf den Wert FFh (255d) gesetzt.
PADDSW addiert die gepackten Word-Daten im Quelloperanden zu den gepackten Word-Daten im Zieloperanden. Das Ergebnis der Addition befindet sich im Zieloperanden. Bei einem Überlauf wird das entsprechende Wort auf den Wert FFFFh (65535d) gesetzt.
MM0= 03 70 00 20 01 A1 E2 F2h ; Zieloperand MM1= 40 40 40 40 40 40 40 40h ; Quelloperand PADDUSB MM0, MM1 ; Addition der gepackten ; Bytedaten in MM1 auf die ; gepackten Bytedaten in MM0 ; (mit Unsigned Saturation !) Ergebnis in MM0= 43 B0 40 60 41 E1 FF FFh
PMADDWD register, memory/register -- gePackte Multiplikation und ADDition von Word-Daten zu Doubleword-Daten |
---|
Der PMADDWD-Befehl multipliziert die vier (vorzeichenbehafteten) Wortwerte des Zieloperanden mit den vier (vorzeichenbehafteten) Wortwerten des Quelloperanden. Das Ergebnis sind vier 32-Bit breite Doubleword-Werte (nur als Zwischenergebnis). Anschließend werden die beiden höherwertigen Doubleword-Werte addiert und als höherwertiges Doubleword im Zieloperanden gespeichert. Die Summe der beiden niederwertigen Doubleword-Werte wird im unteren Doubleword des Zieloperanden gespeichert.
MM0= 0002 7000 0001 0006h ; Zieloperand MM1= 0002 0004 0003 0002h ; Quelloperand PMADDWD MM0, MM1 ; Zwischenergebnis nach Multiplikation (0000)0004+(0001)C000 (0000)0003+(0000)000Ch ; Ergebnis nach Addition MM0= 0001C004 0000000Fh
PMULHW register, memory/register -- gePackte MULtiplikation von (vorzeichenbehafteten) Word- Daten; Speicherung des Höherwertigen (High) - Anteils der Lösung |
---|
Der PMULHW-Befehl multipliziert die vier vorzeichenbehafteten Wortwerte des Zieloperanden mit den vier vorzeichenbehafteten Wortwerten des Quelloperanden. Die höherwertigen 16-Bit der jeweils 32-Bit breiten Ergebnisse werden im Zieloperanden gespeichert.
MM0= 0100 0200 F400 0004h ; Zieloperand MM1= 1000 2000 4000 4000h ; Quelloperand PMULHW MM0, MM1 ; Zwischenergebnis nach Multiplikation 00100000 00400000 FD000000 00010000h ; nur die hervorgehobenen, High-Anteile werden im Zieloperanden gespeichert Ergebnis in MM0= 0010 0040 FD00 0001h
PMULLW register, memory/register -- gePackte MULtiplikation von (vorzeichenbehafteten) Word-Daten; Speicherung des Niederwertigen (Low) - Anteils der Lösung |
---|
Der PMULLW-Befehl multipliziert die vier Wortwerte des Zieloperanden mit den vier Wortwerten des Quelloperanden. Die niederwertigen 16-Bit der jeweils 32-Bit breiten Ergebnisse werden im Zieloperanden gespeichert.
MM0= 0001 0002 0003 0004h ; Zieloperand MM1= 1000 2000 3000 4000h ; Quelloperand PMULLW MM0, MM1 ; Zwischenergebnis nach Multiplikation 00001000 00004000 00009000 00010000h ; nur die hervorgehobenen, Low-Anteile werden im Zieloperanden gespeichert Ergebnis in MM0= 1000 4000 9000 0000h
Die PSUB-Befehle subtrahieren die gepackten Datenelemente des Quelloperanden von den gepackten Datenelementen des Zieloperanden. Das Ergebnis befindet sich nach der Operation im Zieloperanden, wobei Über- oder Unterläufe nicht verhindert werden.
Der PSUBB-Befehl subtrahiert die gepackten Byte-Datenelemente des Quelloperanden von den gepackten Byte-Datenelementen des Zieloperanden. Das Ergebnis der Subtraktion befindet sich im Zieloperanden. Ist es zu groß oder zu klein, werden nur die unteren 8-Bit des Ergebniswertes gespeichert.
Der PSUBW-Befehl subtrahiert die gepackten Word-Datenelemente des Quelloperanden von den gepackten Word-Datenelementen des Zieloperanden. Das Ergebnis der Subtraktion befindet sich im Zieloperanden. Ist es zu groß oder zu klein, werden nur die unteren 16-Bit des Ergebniswertes gespeichert.
Der PSUBD-Befehl subtrahiert die gepackten Doubleword-Datenelemente des Quelloperanden von den gepackten Doubleword-Datenelementen des Zieloperanden. Das Ergebnis der Subtraktion befindet sich im Zieloperanden. Ist es zu groß oder zu klein, werden nur die unteren 32-Bit des Ergebniswertes gespeichert.
MM0= 03 70 00 20 01 A1 E2 F2h ; Zieloperand MM1= 40 40 40 40 40 40 40 40h ; Quelloperand PSUBB MM0, MM1 Ergebnis in MM0= C3 30 C0 E0 C1 61 A2 B2h
PSUBSB register, memory/register -- SUBtraktion von
gePackten Byte-Daten mit Signed Saturation PSUBSW register, memory/register -- SUBtraktion von gePackten Word-Daten mit Signed Saturation |
---|
Die PSUBS-Befehle subtrahieren die gepackten Datenelemente des Quelloperanden von den gepackten Datenelementen des Zieloperanden. Dabei wird das Ergebnis im Zieloperanden gespeichert und einer vorzeichenbehafteten Saturation unterzogen.
Der PSUBSB-Befehl führt die Subtraktion mit gepackten Byte-Daten durch. Das Ergebnis befindet sich nach der Operation im Zieloperanden. Dabei wird im Fall eines Überlaufs der entsprechende Byte-Wert auf 7Fh (127d) und bei einem Unterlauf auf 80h (-128d) gesetzt.
Der PSUBSW-Befehl führt die Subtraktion mit gepackten Word-Daten durch. Das Ergebnis befindet sich nach der Operation im Zieloperanden. Dabei wird im Fall eines Überlaufs der entsprechende Wortwert auf 7FFFh (32767d) und bei einem Unterlauf auf 8000h (-32768d) gesetzt.
MM0= 03 70 00 20 01 A1 E2 F2h ; Zieloperand MM1= 40 40 40 40 40 40 40 40h ; Quelloperand PSUBSB MM0, MM1 Ergebnis in MM0= C3 30 C0 E0 C1 80 A2 B2h
PSUBUSB register, memory/register -- SUBtraktion von
gePackten Byte-Daten mit UnSigned
Saturation PSUBUSW register, memory/register -- SUBtraktion von gePackten Word-Daten mit UnSigned Saturation |
---|
Die PSUBUS-Befehle subtrahieren die gepackten Datenelemente des Quelloperanden von den gepackten Datenelementen des Zieloperanden. Dabei wird das Ergebnis im Zieloperanden gespeichert und einer vorzeichenlosen Saturation unterzogen.
Der PSUBUSB-Befehl führt die Subtraktion mit gepackten Byte-Daten durch. Das Ergebnis befindet sich nach der Operation im Zieloperanden. Dabei wird im Fall eines Unterlaufs das entsprechende Byte auf den Wert 0 gesetzt.
Der PSUBUSW-Befehl führt die Subtraktion mit gepackten Word-Daten durch. Das Ergebnis befindet sich nach der Operation im Zieloperanden. Dabei wird im Fall eines Unterlaufs das entsprechende Wort auf den Wert 0 gesetzt.
MM0= 03 70 00 20 01 A1 E2 F2h ; Zieloperand MM1= 40 40 40 40 40 40 40 40h ; Quelloperand PSUBUSB MM0, MM1 Ergebnis in MM0= 00 30 00 00 00 61 A2 B2h