1 2 #include <stdio.h> 3 #include <math.h> 4 5 double d; 6 int i; 7 8 extern void do_tst ( void ); 9 10 asm( 11 "\n" 12 "do_tst:\n" 13 "\txorl %eax,%eax\n" 14 "\tfld d\n" 15 "\tftst\n" 16 "\tfnstsw %ax\n" 17 "\tmovl %eax, i\n" 18 "\tret\n" 19 ); 20 main(void)21int main ( void ) 22 { 23 d = -1.23; do_tst(); printf("%f -> 0x%x\n", d, i ); 24 d = 0.0; do_tst(); printf("%f -> 0x%x\n", d, i ); 25 d = 9.87; do_tst(); printf("%f -> 0x%x\n", d, i ); 26 return 0; 27 } 28