Assembleur 80x86 | ADDPS |
---|---|
INTEL Pentium III+, SSE, x86-64 | Packed Single-Precision Floating-Point Add |
Syntaxe
ADDPS dest, source |
Paramètres
Nom | Description |
---|---|
dest | Ce paramètre permet d'indiquer l'opérande recevant le résultat |
source | Ce paramètre permet d'indiquer l'opérande effectuant l'ajout au résultat |
Description
Cette instruction permet d'effectuer une addition SIMD de 4 paquets de valeurs réels de simple précision d'une opérande source et d'une opérande destination et entrepose le résultat dans l'opérande de destination sous le format d'un paquet de valeurs réels de simple précision.
Remarques
- Versions codées EVEX : Le premier opérande source est un registre ZMM, YMM ou XMM. Le second opérande source peut être un registre ZMM, YMM ou XMM, un emplacement de mémoire de 512, 256 ou 128 bits ou un vecteur de 512, 256 ou 128 bits diffusé à partir d'un emplacement de mémoire de 32 bits. L'opérande de destination est un registre ZMM, YMM, XMM mis à jour de manière conditionnelle avec Writemask k1.
- Version codée VEX.256 : Le premier opérande source est un registre YMM. Le deuxième opérande source peut être un registre YMM ou un emplacement mémoire 256 bits. L'opérande de destination est un registre YMM. Les bits supérieurs (MAXVL-1:256) de la destination de registre ZMM correspondante sont mis à zéro.
- Version codée VEX.128 : le premier opérande source est un registre XMM. Le deuxième opérande source est un registre XMM ou un emplacement mémoire 128 bits. L'opérande de destination est un registre XMM. Les bits supérieurs (MAXVL-1:128) de la destination de registre ZMM correspondante sont mis à zéro.
- Version SSE hérité du 128 bits : La deuxième source peut être un registre XMM ou un emplacement de mémoire 128 bits. La destination n'est pas distincte du premier registre XMM source et les bits supérieurs (MAXVL-1:128) de la destination du registre ZMM correspondant ne sont pas modifiés.
Algorithme
MODULE ADDPS(dest,source) dest(31..0) ← dest(31..0) + source(31..0) dest(63..32) ← dest(63..32) + source(63..32) dest(95..64) ← dest(95..64) + source(95..64) dest(127..96) ← dest(127..96) + source(127..96) |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
ADDPS xmm1, xmm2/m128 | 0Fh 58h /r | Cette instruction permet d'ajouter le paquet de réel de simple précision de xmm2/m128 à xmm1 |
Exemples
L'exemple suivant permet d'additionner le contenu des paquets du registre XMM1 au registre XMM0 :
- ADDPS xmm0,xmm1
L'exemple suivant permet d'additionner le contenu des paquets d'un emplacement au registre XMM3 :
- ADDPS xmm3,[EDX+112]
L'exemple suivant permet d'additionner le contenu des paquets d'un emplacement au registre XMM15 :
- ADDPS xmm15,[RDX+10]
L'exemple suivant permet d'additionner le contenu des paquets d'une adresse absolue au registre XMM5 :
- ADDPS xmm5,[01234abc]
L'exemple suivant permet d'additionner le contenu des paquets d'un symbole au registre XMM7 :
- ADDPS xmm7,[UnSymbole]
Références
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2A: Instruction Set Reference, A-M, Edition Intel, Mars 2010, Publication No. 253666-034US, page 85 à 87.