Assembleur 80x86 | MOVD |
---|---|
INTEL Pentium MMX+ | Move Doubleword or Quadword |
Syntaxe
MOVD dest, source |
Paramètres
Nom | Description |
---|---|
dest | Ce paramètre permet d'indiquer l'opérande recevant la valeur. |
source | Ce paramètre permet d'indiquer l'opérande contenant la valeur à copier. |
Description
Cette instruction permet de copier l'opérande dans un registre XMM ou vice-verça.
Remarque
- Si vous souhaitez utiliser cette instruction avec le Free Pascal, vous devez avoir la directive de compilation $MMX d'activé. Si vous souhaitez utiliser directement les possibilités de ces instructions, ainsi il faudra utiliser le mot réservé «ASM» pour arriver à cet objectif.
Algorithme
MODULE MOVD(dest,source) SI l'opérande de destination est un registre MMX ALORS dest(31..0) ← source dest(63..32) ← 00000000h SINON dest(31..0) ← source dest(127..32) ← 000000000000000000000000h FIN SI SI l'opérande source est un registre MMX ou XXM ALORS dest ← source(31..0) FIN SI |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
MOVD xmm, reg/mem32 | 66h 0Fh 6Eh /r | Copie une valeur 32 bits de l'emplacement mémoire ou registre 32 bits dans un registre XMM. |
MOVD xmm, reg/mem64 | 66h 0Fh 6Eh /r | Copie une valeur 64 bits de l'emplacement mémoire ou registre 64 bits dans un registre XMM. |
MOVD reg/mem32, xmm | 66h 0Fh 7Eh /r | Copie une valeur 32 bits du registre XMM dans l'emplacement mémoire ou registre 32 bits. |
MOVD reg/mem64, xmm | 66h 0Fh 7Eh /r | Copie une valeur 64 bits du registre XMM dans l'emplacement mémoire ou registre 64 bits. |
MOVD mmx, reg/mem32 | 0Fh 6Eh /r | Copie une valeur 32 bits de l'emplacement mémoire ou registre 32 bits dans le registre MMX |
MOVD mmx, reg/mem64 | 0Fh 6Eh /r | Copie une valeur 64 bits de l'emplacement mémoire ou registre 64 bits dans le registre MMX |
MOVD reg/mem32, mmx | 0Fh 7Eh /r | Copie une valeur 32 bits du registre MMX dans l'emplacement mémoire ou registre 32 bits |
MOVD reg/mem64, mmx | 0Fh 7Eh /r | Copie une valeur 64 bits du registre MMX dans l'emplacement mémoire ou registre 64 bits |
Exceptions
Message | Mode réel | Virtuel 8086 | Mode protégé | Description |
---|---|---|---|---|
#UD(Opcode invalide) | X | X | X | Cette instruction n'est pas supporté, comme indiqué par le bit 23 du registre EDX de la fonction 0000_00001h de l'instruction CPUID. |
X | X | X | Les ensembles d'instructions SSE2 ne sont pas supporté, comme indiqué par le bit 26 du registre EDX de la fonction 0000_0001h de l'instruction CPUID. | |
X | X | X | Le bit d'émulation (EM) du registre CR0 est fixé à 1. | |
X | X | X | L'instruction utilise les registres XMM avec le registre CR4.OSFXSR=0. | |
#NM(Périphérique non disponible) | X | X | X | Le bit d'échangeur de tâche (TS) du registre CR0 est fixé à 1. |
#SS(Pile) | X | X | X | Une adresse mémoire dépasse la limite du segment de pile ou n'est pas canonique |
#GP(Protection général) | X | X | X | Une adresse mémoire dépasse la limite du segment de données ou n'est pas canonique |
#PF(Faute de page) | X | X | Une faute de page résultat de l'exécution de l'instruction | |
#MF(x87 virgule flottante) | X | X | X | Un exception de nombre réel x87 s'est produite et l'instruction référence un registre MMX. |
#AC(Vérifie l'alignement) | X | X | Un désalignement de la référence mémoire est effectué quand une vérification d'alignement est activé |
Voir également
Instruction assembleur 80x86 - Instruction MOVDQA
Instruction assembleur 80x86 - Instruction MOVDQU
Instruction assembleur 80x86 - Instruction MOVDQ2Q
Instruction assembleur 80x86 - Instruction MOVQ
Instruction assembleur 80x86 - Instruction MOVQ2DQ
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 735 à 737.
Dernière mise à jour : Vendredi, le 5 septembre 2014