3DNow ! formats d'instruction
[Cette documentation constitue un aperçu et peut faire l'objet de modifications avec les versions ultérieures. Blank topics are included as placeholders.]
Spécifique à Microsoft
le format de 3DNow ! les encodages d'instruction est basée sur le format de l'instruction conventionnel du x86 modR/M et est semblable au format utilisé par MMX l'instruction. La syntaxe langage assembleur utilisée pour le 3DNow ! l'instruction est la suivante :
3DNow! Mnemonic mmreg1, mmreg2/mem64
la destination et l'opérande source1 (mmreg1) doivent être un registre MMX (MM0-MM7). l'opérande source2 (mmreg2/mem64) peut être un registre MMX ou une valeur 64 bits de mémoire.
L'encodage utilise le préfixe 0Fh de l'opcode suivi d'un deuxième octet de l'opcode de 0Fh. Pour distinguer les différents 3DNow ! l'instruction, un troisième octet de suffixe d'instruction est utilisée. Cet octet de suffixe occupe la même position à la fin d'un 3DNow ! instruction comme un octet imm8. Le format de l'opcode est la suivante :
0Fh 0Fh modR/M [sib] [displacement] 3DNow!_suffix
Les opérandes spécifiques (mmreg1 et mmreg2/mem64) déterminent les valeurs utilisées dans modR/M [sib] [displacement] et suivent les encodages classiques x86. le 3DNow ! le suffixe est déterminé par le réel 3DNow ! instruction.
Par exemple, le 3DNow ! L'instruction de PFMUL peut produire opcodes suivants, selon son utilisation :
L'opcode |
Instruction |
---|---|
0F 0F autorité de certification B4 |
PFMUL mm1, mm2 |
0F 0F 0B B4 |
PFMUL mm1, ebx [] |
0F 0F 4B 0A B4 |
PFMUL mm1, ebx+10 [] |
26 0F 0F 0B B4 |
PFMUL mm1, es : [ebx] |
0F 0F 4C 83 0A B4 |
PFMUL mm1, ebx+eax*4+10 [] |
L'encodage des deux instructions d'amélioration des performances (FEMMS et PREFETCH) utilise un préfixe unique 0Fh de l'opcode.
Voir aussi
Référence
AMD 3DNow ! Vue d'ensemble de la technologie et intrinsèques