#include <stdio.h> #include <stdlib.h> void do_fstenv ( void* p ) { asm("movl 8(%esp), %eax ; fstenv (%eax)"); } void do_fldenv ( void* p ) { asm("movl 8(%esp), %eax ; fldenv (%eax)"); } int main ( void ) { int i; unsigned short* buf = malloc(14*sizeof(short)); for (i = 0; i < 14; i++) buf[i] = i; buf[0] = 0x037f; do_fldenv(buf); do_fstenv(buf); for (i = 0; i < 14; i++) { printf("%04x ", buf[i]); if (i > 0 && ((i % 12) == 11)) printf("\n"); } printf("\n"); return 0; }