Assembleur 80x86 | ADDPD |
---|---|
INTEL Pentium 4+, SSE2, x86-64 | Add Packed Double-Precision Floating-Point Values |
Syntaxe
ADDPD 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 de 2 paquets de valeurs réels de double 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 double 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 64 bits. L'opérande de destination est un registre ZMM, YMM ou 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 ADDPD(dest,source) dest(0..63) ← dest(0..63) + source(0..63) dest(64..12) ← dest(64..12) + source(64..127) |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
ADDPD xmm1, xmm2/m128 | 66h 0Fh 58h /r | Cette instruction permet d'effectuer une addition de 2 paquets de valeurs réels de double 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 double précision. |
Exemples
L'exemple suivant permet d'additionner le contenu des paquets du registre XMM1 au registre XMM0 :
- ADDPD xmm0,xmm1
L'exemple suivant permet d'additionner le contenu des paquets d'un emplacement au registre XMM3 :
- ADDPD xmm3,[EDX+112]
L'exemple suivant permet d'additionner le contenu des paquets d'un emplacement au registre XMM15 :
- ADDPD xmm15,[RDX+10]
L'exemple suivant permet d'additionner le contenu des paquets d'une adresse absolue au registre XMM5 :
- ADDPD xmm5,[01234abc]
L'exemple suivant permet d'additionner le contenu des paquets d'un symbole au registre XMM7 :
- ADDPD 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 82 à 84.