- 563 名前:デフォルトの名無しさん [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ビット倍精度実数を整数値に変換して汎用レジスタに コピーします。」という内容らしいので、この動作がキモと思うのですが、これは 中でどういう動作をしてるのだろう。誰かご存知ありせんか? 長々とすいませんどうかよろしくお願いします。
|

|