Share via


3DNow!命令書式

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 Blank topics are included as placeholders.]

Microsoft 固有の仕様 →

一つの形式。 命令エンコーディングは従来の modR/M x86 命令形式に基づいておりMMX 命令に使用する形式に似ています。 3DNow に使用するアセンブリ言語構文です。 命令は次のとおりです。:

3DNow! Mnemonic   mmreg1, mmreg2/mem64

コピー先と source1 オペランド ()mmreg1 にはMMX レジスタである必要があります。MM0-MM7)。 source2 オペランド ()mmreg2/mem64 にはMMX レジスタまたは 64 ビットのメモリ値を指定できます。

エンコーディングは 0Fh の 2 番目のオペコード バイトに続くオペコードのプレフィックス 0Fh を使用します。 さまざまな一つを区別する。 命令は3 番目の手順のサフィックスが使用されます。 このサフィックスのバイトは一つの最後の同じ場所を使用します。 imm8 バイトがようについて説明します。 オペコードの形式は次のとおりです。:

0Fh 0Fh modR/M [sib] [displacement] 3DNow!_suffix

特定のオペランドは (mmreg1 と mmreg2/mem64) modR/M [sib] [displacement] で使用される値を決定し従来の x86 エンコーディングに従います。 3DNow! サフィックスが実際の一つによって決まります。 命令。

たとえば3DNow! PFMUL については次のオペコードを生成する場合 :

オペコード

命令

0F 0F の CA B4

PFMUL mm1mm2

0F 0F 0B B4

PFMUL mm1ebx [入力]

0F 0F 4B 0A B4

PFMUL mm1ebx+10 [入力]

26 0 0F 0B B4 F

PFMUL mm1es-ES: [入力] ebx

0F 0F 4C 83 0 は B4

PFMUL mm1ebx+eax*4+10 [入力]

2 個のパフォーマンス向上の命令のエンコーディング (FEMMS と先取り単一のオペコードのプレフィックス 0Fh を使用します。

参照

Reference

AMD 3DNow!テクノロジの概要、組み込み