📄 fxtract.c
字号:
#include <stdio.h>#include <math.h>double arg, res1, res2;extern void do_fxtract ( void );asm("\n"".global do_fxtract\n""do_fxtract:\n""\tfinit\n""\tfldl arg\n""\tfxtract\n""\tfstpl res1\n""\tfstpl res2\n""\tret");void try ( double x ){ arg = x * 1.414213562373049; res1 = res2 = 0.0; do_fxtract(); printf("%17.10e -> %14.10f %14.10f\n", arg, res1, res2);}int main ( void ){ int i; /* positives */ for (i = 0; i < 40; i++) try( 1.27 + (double)(i*10 - 200) ); try(+0.0); try(1.0 / 0.0); try(sqrt(-1.0)); try(5.1e-308); try(4.1e-308); try(3.1e-308); try(2.1e-308); try(1.1e-308); try(0.9e-308); try(0.7e-308); try(0.6e-308); try(0.5e-308); try(0.4e-308); try(0.3e-308); try(0.1e-308); try(1.3e-320); try(1.3e-321); try(1.3e-322); try(1.3e-323); try(0.9e-323); try(0.7e-323); try(0.5e-323); try(0.3e-323); try(0.2e-323); try(1.3e-324); /* negatives */ printf("\n"); for (i = 0; i < 40; i++) try( - (1.27 + (double)(i*10 - 200)) ); try(-0.0); try(-(1.0 / 0.0)); try(-sqrt(-1.0)); try(-5.1e-308); try(-4.1e-308); try(-3.1e-308); try(-2.1e-308); try(-1.1e-308); try(-0.9e-308); try(-0.7e-308); try(-0.6e-308); try(-0.5e-308); try(-0.4e-308); try(-0.3e-308); try(-0.1e-308); try(-1.3e-320); try(-1.3e-321); try(-1.3e-322); try(-1.3e-323); try(-0.9e-323); try(-0.7e-323); try(-0.5e-323); try(-0.3e-323); try(-0.2e-323); try(-1.3e-324); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -