問題タブ [mmx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
267 参照

assembly - (a * b)/256およびMMX

MMX-Register内で4つの値を並列に使用して次の計算を実行できるかどうか疑問に思っています。

ここで、aは符号付きの単語で、bは0〜256の範囲の符号なしの値(ブレンド係数)です。

私の問題は、pmullwpmulhwがこのタスクでどのように役立つか(または役立つかどうか)がわからないことだと思います。

0 投票する
2 に答える
1679 参照

sse - メモリから xmm レジスタに 32 ビットをロードする

インライン アセンブリ:

同等の組み込みコードは何ですか?

0 投票する
1 に答える
1611 参照

visual-studio - MMXエラーA2022:命令オペランドは同じサイズである必要があります

コードの一部(元々C ++で記述された関数)を手動で調整しようとすると、アセンブラーが次のエラーをスローします:エラーA2022:命令オペランドは同じサイズである必要があります

'movq'命令を使用する行で。

コード:

32ビットボックスでmasmを使用しています。

0 投票する
1 に答える
300 参照

c - MMX SSE から C コードへの変換時に画質が低下する

MMX SSE を同等の C コードに変換しています。ほとんど変換しましたが、画質が適切ではないか、画像にノイズが入っていることがわかります。過去 5 日間のコードをデバッグしていますが、その理由がわかりません。皆さんが問題を調べて私を助けてくれたら、とてもうれしいです。

元の SSE コード:

変換したコードを以下に示します

コードが読みにくい場合は申し訳ありません。幅と高さを表しますw。とは、後で他の目的に使用される 2 つのパラメーターです。hout_hout_v

0 投票する
1 に答える
1014 参照

assembly - MMX を SSE 操作と並行して使用する方法

ウィキペディアでは、次のように述べています。

SSE2 での整数サポートの追加により、MMX は大幅に冗長になりましたが、MMX を SSE 操作と並行して使用することで、状況によってはさらにパフォーマンスを向上させることができます。

これらの命令は別のユニットで実行されるため、プロセッサが SSE/MMX 命令を実行している間に、別の MMX/SSE 命令を同時に実行できるということですか?

それとも、異なるレジスタを使用しているため、モードを切り替えずに一緒に使用できることを意味します(MMXモードとFPUモードは「同時に」動作できず、手動で異なるモードに切り替える必要があります)?

0 投票する
1 に答える
502 参照

assembly - MMX - 定数バイトの操作

私は何かに取り組んでいて、別の問題に遭遇しました。最初に:

私は最後の質問に従って QWords を使用してプロセスを試みてきました (おそらく DWords でも学習してみます)。私が使用している開発マシンでアクセスできるのは MMX 命令だけなので、そこに行ってきました。MMX ops は、MASM32 から取得したエラーを介してこれらのレジスタでのみ機能すると判断したため、問題は「腐敗」から来る値の処理にありました。しかし、「rot」と「64-rot」を MMX レジスタに入れようとすると、さらにエラーが発生します。これを解決するにはどうすればよいですか?

また、MMX レジスタを QWord として追加する必要があります。参考文献にこれを行うための指示がありません。とにかく、それらを通常のレジスタに分割するか、FP 命令でプッシュする必要がありますか?

0 投票する
1 に答える
416 参照

assembly - この MMX メモリ コピー コードにはフェンスが必要ですか?

この基本的な mmx メモリ コピー コードは、リリース モードでメモリを破損しますが、これは特定のコンパイラでのみ発生します。特にVisual Studio 2010。このコードにはメモリ フェンスが必要なためだと思いますが、どこに行くのか、正確な理由はわかりません。このコードは、Visual Studio 2005 で完全に機能しました。

MMXMemCopy ENDP

0 投票する
1 に答える
393 参照

x86 - MMXレジスタにすべてのバイトを追加する命令はありますか?

MMXレジスタ内にある4つの整数の合計を計算する必要があります。たとえば、次のMMXレジスタがあり ます。ここに画像の説明を入力してください この結果を取得したい(同じレジスタにあるか、通常のレジスタにあるかは関係ありません)。 ここに画像の説明を入力してください

その操作を実行する命令があるかどうか知りたいです。Windowsでx86アセンブリを使用しています。私の最初の推測は、41を別のMMXレジスタに入れて呼び出しPMADDWD、[X1 + X2] [X3 + X4]になるようにすることですが、それはかなり汚いと思います。

前もって感謝します。

0 投票する
1 に答える
843 参照

c - インライン MMX アセンブラのコンパイル エラー: サフィックスまたはオペランドが無効です

次のコード:

次のエラーでコンパイルに失敗する理由を理解できません。

なんで?

0 投票する
3 に答える
2126 参照

windows - Visual C Express ediion 2008でmovd(MMX)命令をアセンブルできません

movd命令をコンパイルしようとすると、次のようなエラーが表示されます

私のコードは次のとおりです。

これはファイルで、ファイル.asmからこの関数を呼び出しましたC

以下のコードを使用して修正しました