x87

    8

    4答えて

    最近、FPUスタックのオーバーフローで問題が発生しています。私はそれが呼び出されるたびにFPUスタックにガベージ値をプッシュし、それを決してクリーンアップしないバグのライブラリ関数に戻して追跡しました。 幸いにも、これは簡単に再現可能であり、どの条件が原因であるか正確にわかります。私はインラインASMのブロックをこのルーチンを呼び出すルーチンに落として、FPUスタックから一番上の値をポップするよう

    5

    1答えて

    私は数学コプロセッサを使用しなければならない混合C/ASMで簡単なアプリケーションを書くことを任されてきました。 与えられた点が円柱の中にあれば1を返す関数円柱(float x、float y、float z)があります(円柱はx = 0、y = 0、radius = 5、height = 10)、そうでない場合は0である。 だから、シンプルに見えます。 zが< 0,10>の範囲内にあるかどうかを

    1

    1答えて

    浮動小数点数を整数(この例では2)の整数で除算する必要があります。 したがって、私は単純に mov rax, 2 fild rax fdivp st1 が、よりエレガントでかさばらバージョンは(と私は次のように動作しません知っている)のようにあります: fidiv 2 :Sそれはで感謝:)不可能だなら、私はあまりにも知らせてください予告

    9

    2答えて

    x87 FPUは80ビット精度の内部モードを使用することで注目に値するので、多くの場合、コンパイラやマシン間で予期せぬ結果が得られません。 In my search .NETの再現可能な浮動小数点数計算のために、私は、.NET(MicrosoftとMono)の主な実装が両方とも64ビットモードでx87ではなくSSE命令を発行することを発見しました。 SSE(2)は、32ビット浮動小数点に対して厳密

    1

    2答えて

    私は大きな問題を抱えています。fdiv !!!!私は、これは、私はあなたが見ることができるように私はので、私はちょうどすることができますTASMを使用していst(0)で結果を(見ることができないので、私はresultadoに結果を移動 .model small .stack 100h .data var1 dd 1 var2 dd 3 var3 dd 2 resultado dt 0

    3

    2答えて

    私はx86上の浮動小数点演算の基本的な理解を得ようとしています。私はスタックを持つ専用のFPUを持っていることを理解していますが、異なる命令の観点からスタックがどのように動作するかに関する関連性の高い情報は見つかりません。 基本的に、fpuレジスタのアドレッシングは私を混乱させます。私がst(#)を参照すると、特定のレジスタについて話していますか?それとも、スタックの先頭からオフセットされています

    0

    1答えて

    私は算術演算を実行するMASM32プロジェクトに取り組んでいます。浮動小数点ユニットを使用するには、コプロセッサ(8087命令セット)を使用する必要があります。だから、私の浮動小数点の制限は、100.0であり、すべての数は制限よりも小さくなければならない。私は2つの数値を合計し、結果を比較しようとしていますが、うまくいきません。 .386 .model flat, stdcall option

    5

    2答えて

    MXCSRのようなものに最適な設定は何ですか?どの丸めモードが最速ですか?どのプロセッサで?シグナリングNaNを有効にする方が速いので、計算結果がnanになったときに通知を受けるか、NaN以外の計算で減速を引き起こしますか? 要約すると、タイトな内部SSEループのスピードを最大限に引き出すにはどうすればよいですか? 関連するx87浮動小数点速度のアドバイスも歓迎します。