2011-12-29 8 views

答えて

10

それは、彼らはすべて同じことを行うが、キャッチがありますmovapdmovaps、またはmovdqa

movaps xmm3, xmm0 

です:

  • movapdmovapsは、浮動小数点ドメイン内で動作します。
  • movdqaは、ドメイン変更のストールを避けるために、あなたのデータ型に応じて適切なものを使用して、整数ドメインで

を運営しています。

また、movapdを使用する理由はありません。 movapdがエンコードするために余分なバイトを必要とするため、常にmovapsを使用してください。

+1

movdqaは私が探していたものです:)ありがとう。それは速かった:) PS。浮動小数点の動きは実際には整数の動きとどう違うのですか?私にとっては、どちらも単純なコピーでなければなりません。 – lampak

+4

Intelプロセッサでは、FP単位と整数単位が別々です。 1つのユニットにある命令を実行すると、そのユニットに値が移動されます。しかし、別のドメインでその値に命令を出すときは、新しいユニットに移動しなければなりません.1〜2サイクルのペナルティが必要です。したがって、可能であれば、ドメインに値を保持することが最善です。なぜ、異なる 'mov'命令があるのでしょうか。整数演算をしていて、 'movaps'を使用している場合は、値をFPユニットに移動するためにペナルティを支払うことになり、次の整数命令に戻すためにペナルティが戻されます。 – Mysticial

+1

同じことが論理演算子に適用されます: 'por'、' orps'、 'orpd' – Mysticial

関連する問題