曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 5097|回复: 0
打印 上一主题 下一主题

优化浮点运算

[复制链接]

4917

主题

5879

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34382
跳转到指定楼层
楼主
发表于 2010-3-14 12:25:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
浮点运算可能是汇编语言程序中最为耗时的部分。一定要常识优化浮点代码,尽可能地提高运算的性能。

Intel 提供了编写浮点程序的一些简单技巧:
      确保浮点值不会上溢或者下溢出数据。
      把精度控制位设置为单精度
      使用查表实现简单的三角函数
      在可能的情况下,断开以来链。例如,不计算 z=a+b+c+d,而是计算 x=a+b; y=c+d; z=x+y。
      在 FPU 寄存器中尽可能多地保留方程式的值(避免重复计算)。
      在处理整数和浮点值时,把整数加载到 FPU 寄存器中并且执行运算,这样比对整数直接使用浮点指令要快。例如,不使用 FIDIV,而是使用 FILD 加载整数,然后对FPU 寄存器中的值进行 FDIVP 指令。
      尽可能使用 FCOMI 指令,不使用 FCOM 指令(因为 FCOMI 集成了  FSTSW 和 SAHF 的指令组合)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-14 23:14 , Processed in 0.067074 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表