【初心者歓迎】C/C++室 Ver.47【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0563デフォルトの名無しさん
2008/01/29(火) 05:17:36<main関数の逆アセンブル結果>
80483c4: 8d 4c 24 04 lea 0x4(%esp),%ecx
80483c8: 83 e4 f0 and $0xfffffff0,%esp
80483cb: ff 71 fc pushl -0x4(%ecx)
80483ce: 55 push %ebp
80483cf: 89 e5 mov %esp,%ebp
80483d1: 51 push %ecx
80483d2: 83 ec 24 sub $0x24,%esp
80483d5: dd 05 d8 84 04 08 fldl 0x80484d8
80483db: dd 5d e8 fstpl -0x18(%ebp)
80483de: dd 45 e8 fldl -0x18(%ebp)
80483e1: dd 05 e0 84 04 08 fldl 0x80484e0
80483e7: de c9 fmulp %st,%st(1)
80483e9: dd 5d e0 fstpl -0x20(%ebp)
80483ec: f2 0f 2c 45 e0 cvttsd2si -0x20(%ebp),%eax
<以下はprintfを呼んでいるだけと思うので略>
をみてもなんでこうなるのか全然わかりません。
cvttsd2siの命令が、「64ビット倍精度実数を整数値に変換して汎用レジスタに
コピーします。」という内容らしいので、この動作がキモと思うのですが、これは
中でどういう動作をしてるのだろう。誰かご存知ありせんか?
長々とすいませんどうかよろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています