問題タブ [fpu]
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.
c - FPU ルーチンを最適化する方法
私はいくつかのcルーチンを持っています
それをアセンブリに書き直したいのですが、なんとかそれを書くことができました
c-routine は私のプログラム ループを 150 ミリ秒実行し、それで 105 ミリ秒に落ちたので、これはより高速です (ただし、内側のループで 2 つのピクセルを計算する巻き戻された c-routine は 115 しかかからず、展開する理由と方法が正確にはわかりません)。それは asm で)
このasmコードは効率的ではないと思います.fpuスタックにすべての変数をロードしようとしました(そしてループの前に7つのダブルをロードしました:cre cim 4.0 re im re2 im2その後、スタック交換の上にそれをロードするtolがありますfstpでポップバックするので、効率的ではないかもしれません
誰かがそれを改善するのを助けることができますか(内側のループの外側の値はあまり重要ではありませんが、内側のループのコードはここで重要です
winforms - masm アセンブリ fpu を使用して数値を除算および乗算する方法
私はmasmとアセンブリが初めてで、助けが必要です。私はすでにこれにおそらく6時間を費やしています。3 つのテキスト ボックスと 2 つのボタンがあります。ボタンの 1 つは、テキスト ボックスの数値を乗算して結果を 3 番目のテキスト ボックスに表示し、もう 1 つのボタンは、2 つのテキスト ボックスの数値を除算して結果を 3 番目のテキスト ボックスに表示します。ほとんどの場合、数字には小数が含まれます。
いろいろ試しましたが、これが一番近いと思うコードです。
分ける
かける
。データ
上記のコードでは、テキスト ボックスに間違った数値が表示されます。誰かが私に何をする必要があるか教えてください。
ありがとうございました
アップデート
このコードは機能します
c++ - FLD 浮動小数点命令
http://cs.smith.edu/~thiebaut/ArtOfAssembly/CH14/CH14-4.html#HEADING4-5によると
14.4.4.1 FLD 命令
fld mem_32
fld mem_64[bx]
私の目的は、定数 10 を fPU スタックに格納することです。なぜ私はこれを行うことができないのですか?
opencv - ARM ボード上の FPU でコンパイルする
OpenCV を使用して画像処理アプリケーションを実行するために、mini6410 ARM 1176 ボードを使用しています。ボードの製造元から提供されている ARM ツールチェーン 4.5.1 を、この場合に役立つ可能性がある特定のオプションとともに使用しています。
実行可能ファイルを作成し、ツールチェーンとオプションを使用して OpenCV をコンパイルすると、次のようになります。
プログラムが正常にビルドされました。ボード上で実行すると、プログラムの処理時間は 25 秒/フレームであることがわかります。オプション付きでコンパイルされたプログラムと同じです:
FP を使用すると、プログラムの実行速度が向上することを期待しています。私が間違っていた提案はありますか?OpenCVはツールチェーンでコンパイルされているため、FPUに関連するOpenCV(私は2.4.4を使用)のメイクファイルを作成するときにオプションが見つかりません
assembly - FPU IA-32 SIGFPE、算術例外
以下のコードに問題があります。IA-32 アーキテクチャーの GAS asm 構文です。fsqrt
命令の後、算術例外を生成します。SetDouble
は値のint
型で、浮動小数点数です。gccを使用してフラグを付けてこれをコンパイルしています。誰かが私が間違えた場所を指摘できますか.0x0200
input
-m32
nasm - FPUを使用したnasm無限ループ
この操作を浮動小数点で行う小さな nasm プログラムを作成しようとしています
nasmの同等のプログラムは次のとおりです
_while
ループは無限に繰り返されます
ecx / i
gards は常に同じvalue = 0
(0 に設定されている) であり、デクリメントしません。
visual-c++ - /QIfist オプションを使用して MSVC に FIST 命令を強制的に生成させる
私は/QIfist
コンパイラ スイッチを定期的に使用しています。これにより、コンパイラは、ヘルパー関数FISTP
を呼び出す代わりに、浮動小数点値を整数に丸める命令を生成します。_ftol
FIST(P) DWORD
の代わりに を使用するにはどうすればよいQWORD
ですか?
FIST QWORD
CPU が結果をスタックに格納し、次にスタックをレジスタに読み取り、最後に宛先メモリに格納する必要がありますが、宛先メモリにFIST DWORD
直接格納するだけです。