インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

EMMS 命令: 必要な理由

EMMS 命令には、レジスターを一度空にして、別のデータに使用できるようにする働きがあります。EMMS 命令は MMX レジスターをクリアし、浮動小数点タグワードを空に設定します。

浮動小数点スタックは使用後にクリアしなければならないため、浮動小数点命令を発行する前に MMX レジスターをクリアする必要があります。浮動小数点オーバーフロー例外を回避するために、すべての インテル® MMX® 命令コードセグメントの最後に EMMS 命令を挿入します。

インテル® MMX® 命令の実行後、EMMS 命令でレジスターをリセットする理由



注意

インテル® MMX® 命令の実行後、マルチメディア・ステートを空にせずに浮動小数点命令を実行すると、予期しない動作が行われたり、パフォーマンスが低下する場合があります。