C言語なら、俺に聞け! <27>
■ このスレッドは過去ログ倉庫に格納されています
007665
NGNGあ、大丈夫でした。アセンブリ見てみたけど何やってるかわかりません。
以下
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)
■ このスレッドは過去ログ倉庫に格納されています