永发信息网

FSIN怎么用?

答案:3  悬赏:0  手机版
解决时间 2021-01-02 15:52
听说因特尔的CPU好像支持三角函数的硬件指令,好像是FSIN.
我不是学汇编的(学C++的),sin的软件算法比较慢,我想内联汇编,请教一下具体代码是怎样,谢谢?
最佳答案
C++的sin用的就是FSIN指令
下面的指令是通过反汇编一个含有sin的程序得到的:

00401084 > $ 8D5424 04 LEA EDX,DWORD PTR SS:[ESP+4]
00401088 . E8 48050000 CALL FSIN.__fload_withFB
0040108D $ 52 PUSH EDX
0040108E . 9B WAIT
0040108F . D93C24 FSTCW WORD PTR SS:[ESP]
00401092 . 74 50 JE SHORT FSIN.004010E4
00401094 . 66:813C24 7F02 CMP WORD PTR SS:[ESP],27F
0040109A . 74 06 JE SHORT FSIN.004010A2
0040109C . D92D 28114300 FLDCW WORD PTR DS:[__DEFAULT_CW_in_mem]
004010A2 > D9FE FSIN
004010A4 . 9B WAIT
004010A5 . DFE0 FSTSW AX
004010A7 . 9E SAHF
004010A8 . 7A 1D JPE SHORT FSIN.004010C7
004010AA > 833D 808F4300 00 CMP DWORD PTR DS:[___fastflag],0
004010B1 . 0F85 77050000 JNZ FSIN.__fast_exit
004010B7 . BA 1E000000 MOV EDX,1E
004010BC . 8D0D 304A4300 LEA ECX,DWORD PTR DS:[434A30]
004010C2 . E9 74050000 JMP FSIN.__math_exit
004010C7 > DB2D 2A114300 FLD TBYTE PTR DS:[__pi_by_2_to_61]
004010CD . D9C9 FXCH ST(1)
004010CF > D9F5 FPREM1
004010D1 . 9B WAIT
004010D2 . DFE0 FSTSW AX

基本上已经很精简了,你实在想内联汇编的话试试我写的这个函数吧:

#include

double WdsySin (double _InputRad)
{
double _ResultTemp;
_asm
{
fld _InputRad
fsin
fstp _ResultTemp
}
return _ResultTemp;
}

int main ()
{
double Num1=3.141592653589793/6;
double SinNum1;

SinNum1=WdsySin(Num1);
printf ("%f\n",SinNum1);

return 0;
}
全部回答
你以为C库的sin不是用fsin么... sin是个intrinsic,编译器直接生成代码,根本不当函数编译 而且实际处理除非精度要求高到bt,sin都是查表的,没有现算的
fcos45°=μ(mg-fsin45°) 右边展开 fcos45°=μmg-fμsin45° 移项: fcos45°+fμsin45°=μmg 提取f f(cos45°+μsin45°)=μmg 两边同时除以cos45°+μsin45° f=μmg/(cos45°+μsin45° )
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
椰浆可以用牛奶代替吗
页面复制不了怎么办
猜数字 四七相加二四合
赛客虚拟家庭怎么玩
我也睡了英文怎么说
山顶圆平的山叫什么
电脑视频亮度怎么调节 视频亮度怎么调
使用用友时如何删除已经创建的账套?
关于声现象,下列说法正确的是A.声音在水中比
东北平原包括哪些省
lol里的海克斯传送门有什么用
男士穿风衣配什么鞋子
北方牧区居民常常食用的食品有A.水果和蔬菜B.
银行流水账单需要到银行去打印吗
改稿用日语怎么说
推荐资讯
没有驾照可以申请贷款买车吗?
我的笔记本内存是2G800mhz,想加装一根4g800m
比亚迪速锐加速时发动机有哒哒哒声
“烫手”的电子废弃物阅读答案
滚轮胶棉拖把怎么换头
与风雨有关的成语
新手请教三个月英短吃什么猫粮好
如何查询驾照考试期限
织毛衣腋窝处怎么分针
皮皮虾怎么洗
去钓鱼需要什么装备?
迷信中的大师是怎样做到让生鸡蛋立起来呢
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?