1 
2 #include <stdio.h>
3 #include <stdlib.h>
4 
do_fstenv(void * p)5 void do_fstenv ( void* p )
6 {
7    asm("movl 8(%esp), %eax ; fstenv (%eax)");
8 }
9 
do_fldenv(void * p)10 void do_fldenv ( void* p )
11 {
12    asm("movl 8(%esp), %eax ; fldenv (%eax)");
13 }
14 
main(void)15 int main ( void )
16 {
17    int i;
18    unsigned short* buf = malloc(14*sizeof(short));
19    for (i = 0; i < 14; i++)
20       buf[i] = i;
21    buf[0] = 0x037f;
22 
23    do_fldenv(buf);
24    do_fstenv(buf);
25    for (i = 0; i < 14; i++) {
26       printf("%04x ", buf[i]);
27       if (i > 0 && ((i % 12) == 11))
28           printf("\n");
29    }
30    printf("\n");
31    return 0;
32 }
33