xmm

    6

    1答えて

    パラメータnに応じてxmmレジスタにさまざまなmovdqu命令を含むコードを生成するためのガスマクロを書きたいと思います。 .macro xxmov n, p1 .if (\n == 1) xor %eax, %eax .endif .if (\n - 1) xxmov (\n - 1), \p1 .endif

    4

    1答えて

    128ビットのxmmレジスタを2つの64ビットクワッドワードに分割する方法はありますか? 私はxmm1では非常に数が多いとr10、またはRAXとRDXにr9に高いクワッドワードと下位クワッドワードを取得したいです。 movlpdまたはmovhpdは、reg to memまたはその逆の場合にのみ機能します。

    22

    1答えて

    私はインテルのデータシートを探しています:インテル®64およびIA-32アーキテクチャーを ソフトウェア・デベロッパーズ・マニュアルと私は違いを見つけることができません MOVDQA:移動同盟ダブルクォドワード MOVAPS:移動整列パック単精度 インテルのデータシートには、両方の指示があります: この命令は、128ビット メモリ位置からXMMレジスタをロードする 128ビットのメモリ・ロケーショ

    2

    3答えて

    1つのメモリ位置から別のメモリ位置に奇数番号のバイトをすべてコピーする必要があります。すなわち、第1、第3、第5などをコピーする。具体的には、2000文字/属性ワードを含むテキストエリア0xB8000からコピーしている。私は、属性のバイトをスキップして、文字で終了したい。次のコードは正常に動作します: mov eax, ecx ; eax = number of bytes (1 to

    3

    2答えて

    私の印象は間違いないでしょうが、おそらく巧妙なトリックがありますか?おかげさまで

    2

    2答えて

    私は、常に2回実行される単純な浮動小数点ベースの演算を持っています。だから私はそれをSSEに変換しようとしましたが、ただ失敗します。高水準言語はDelphiです。そのため、Intrinsics関数をサポートしていないため、すべてを記述する必要があります。 基本的に私はちょうど:パラメータのロード/アンロードし、いくつかの乗算とaddditionsを持って Procedure TLP1Poly2.P

    9

    4答えて

    私はDirectX SDKのチュートリアルを見ていました。チュートリアル5は問題なく動作しますが、コードを自分のクラスにコピーして分割した後、アプリケーションの起動中に奇妙なエラーが発生しました。 行は次のとおりです。 XMFINLINE _XMMATRIX& _XMMATRIX::operator= ( CONST _XMMATRIX& M ) { r[0] = M.r[

    -1

    1答えて

    まず、値を整数レジスタに移動し、呼び出されたものを知らずにxmmレジスタに値を移動し、xmmレジスタに値を移動する唯一の方法です。 mov [eax], (float)1000 ; store to memory movss xmm1,[eax] ; reload または mov eax, 1000 ; move-immediate integer cvtsi2ss xmm1,ea

    6

    1答えて

    アセンブリでの見かけ上の問題:XMM0レジスタ全体をXMM3にコピーしたい。私は試しました movdq xmm3, xmm0 しかし、MOVDQは2つのXMMレジスタ間の値の移動には使用できません。代わりに私は何をすべきですか?

    12

    1答えて

    パックドダブルワード整数をXMMレジスタからスタックにプッシュする方法はありますか?後で必要になったときにポップバックしますか? 理想的には私は汎用レジスタのPUSHまたはPOPのようなものを探しています、私はインテルのマニュアルを確認しているが、私はどちらかのコマンドを逃した、または1つがありません... それとも私がする必要があります値を汎用レジスタに展開してから押しますか?