Content-Length: 210016 | pFad | http://b.hatena.ne.jp/Itisango/x86/%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9/

[B! x86][浮動小数点] Itisangoのブックマーク

タグ

x86と浮動小数点に関するItisangoのブックマーク (2)

  • Assembly Programming Linux

    実行しているのは次のコードです.fld でメモリにある80ビットの浮動小数を スタックにつみます. (a) の fsub 命令でスタックの上部の2つの数値を取り出して 減算し, 結果をスタックに戻します. (b) の fsubp 命令では fsub の後にスタック をポップ(スタックトップを空にした後,ポインタをインクリメント)します. (c) の例では, fcompp で大きさを比較した結果を C0, C2, C3 の条件コードに設定 してスタックを2回ポップしています. 比較に使った数値が不用の場合です. Num16 dt 16.0 Num4 dt 4.0 fld tword[Num16] fld tword[Num4] fsub st1, st0 ; (a) ; または fsubp st1,st0 (b) ; または fcompp st1,st0 (c) 使いやすいのは (b) の方

  • 浮動小数点演算ではまった話 - bkブログ

    浮動小数点演算ではまった話 浮動小数点演算のありがちな問題ではまりました。 いろいろ調べているうちに x86 特有のちょっとおもしろい 現象に遭遇したので紹介したいと思います。 パーセンテージの計算 簡単な C のプログラムでパーセンテージを計算しようと思い、 次のようなコードを書きました。 int x, y; ... int a = (double)x / y * 100; int a = x * 100 / y としないのは、 x が大きい場合に x * 100 が オーバーフローを起こす (INT_MAX を越える) ためです。 このコードは一見、期待通りに動いていたのですが、 しばらく使っていると、手元の環境では x = 53, y = 100 のときに a は 53 ではなく 52 になることに気づきました。 これは次の理由によります。 式の最初の (double)53 / 10

  • 1








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://b.hatena.ne.jp/Itisango/x86/%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9/

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy