>62
あ、大丈夫でした。アセンブリ見てみたけど何やってるかわかりません。
以下
int foo(double a) { return a == (int)a; }
を gcc -O2 -Wall -S foo.c でコンパイルしたもの。
誰か解読して!
_foo:
    pushl %ebp
    movl %esp,%ebp
    subl $24,%esp
    fldl 8(%ebp)
    fnstcw -2(%ebp)
    movw -2(%ebp),%dx
    orw $3072,%dx
    movw %dx,-4(%ebp)
    fldcw -4(%ebp)
    fistl -8(%ebp)
    movl -8(%ebp),%eax
    fldcw -2(%ebp)
    movl %eax,-8(%ebp)
    fildl -8(%ebp)
    fucompp
    fnstsw %ax
    andb $69,%ah
    cmpb $64,%ah
    sete %al
    movzbl %al,%eax
    movl %ebp,%esp
    popl %ebp
    ret
なんで、こんな複雑になるんだろ?(アセンブラスレ逝けっていわれそうw)