Partager via


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