DSP

浮点运算

2019-07-13 17:04发布

以前就听说过浮点运算,但是只是听说过名称而已,很少运用,今天因为写程序需要用到浮点运算的运算命令,瞬间头晕了,这是什么玩意儿,说好的实数运算怎么在计算机上变成这么复杂的东西,今天就总结一下平时需要用到的浮点运算指令: 首先需要认清一点浮点运算就是数学里的实数运算,只不过是要在计算机中运算存储罢了,因为计算机只能存储整数,因此要想在计算机上进行浮点运算的确有点麻烦。 浮点运算使用三种不同的数据: 1、整数(Integer),又分为字,短整数(Short Integer)和长整数(Long Integer) 2、实数(Real)分单精度(Single Real)和双精度(Double Real) 3、压缩的二十进制数(BCD)
浮点运算数据传输指令:这类指令主要是从内存装入浮点寄存器堆数据,一般目的地址总是栈顶ST(0),用调试器你可以清楚地看到这一点.注意带P结尾的操作,是在前面操作完成之后出栈,也就是原来ST(1)的内容现在成了ST(0)的内容: 下面浮点指令: 指令 功能 EMMS 媒体空MMX状态 F2XM1 浮点栈顶绝对值 FADD 浮点加 FADDP 浮点加出栈 FBLD 浮点加载十数 FBSTP 浮点保存十数出栈 FCHS 浮点正负求反 FCLEX 浮点检查错误清除 FCMOVB 浮点低于传送 FCMOVBE 浮点不高于传送 FCMOVE 浮点相等传送 FCMOVNB 浮点不低于传送 FCMOVNBE 浮点高于传送 FCMOVNE 浮点不等传送 FCMOVNU 浮点有序传送 FCMOVU 浮点无序传送 FCOM 浮点比较 FCOMI 浮点比较加载标志 FCOMIP 浮点比较加载标志出栈 FCOMP 浮点比较出栈 FCOMPP 浮点比较出栈二 FCOS 浮点余弦 FDECSTP 浮点栈针减一 FDISI 浮点检查禁止中断 FDIV 浮点除 FDIVP 浮点除出栈 FDIVR 浮点反除 FDIVRP 浮点反除出栈 FENI 浮点检查禁止中断二 FFREE 浮点释放 FFREEP 浮点释放出栈 FIADD 浮点加整数 FICOM 浮点比较整数 FICOMP 浮点比较整数出栈 FIDIV 浮点除整数 FIDIVR 浮点反除 FILD 浮点加载整数 FIMUL 浮点乘整数 FINCSTP 浮点栈针加一 FINIT 浮点检查初始化 FIST 浮点保存整数 FISTP 浮点保存整数出栈 FISTTP   FISUB 浮点减整数 FISUBR 浮点反减整数 FLD 浮点加载数 FLD1 浮点加载一 FLDCW 浮点加载控制器 FLDENV 浮点加载环境 FLDL2E 浮点加载L2E FLDL2T 浮点加载L2T FLDLG2 浮点加载LG2 FLDLN2 浮点加载LN2 FLDPI 浮点加载PI FLDZ 浮点加载零 FMUL 浮点乘 FMULP 浮点乘出栈 FNCLEX 浮点不检查错误清除 FNDISI 浮点不检查禁止中断 FNENI 浮点不检查禁止中断二 FNINIT 浮点不检查初始化 FNOP 浮点空 FNSAVE 浮点不检查保存状态 FNSTCW 浮点不检查保存控制器 FNSTENV 浮点不检查保存环境 FNSTSW 浮点不检查保存状态器 FPATAN 浮点部分反正切 FPREM 浮点部分余数 FPREM1 浮点部分余数二 FPTAN 浮点部分正切 FRNDINT 浮点舍入求整 FRSTOR 浮点恢复状态 FSAVE 浮点检查保存状态 FSCALE 浮点比例运算 FSETPM 浮点设置保护 FSIN 浮点正弦 FSINCOS 浮点正余弦 FSQRT 浮点平方根 FST 浮点保存 FSTCW 浮点检查保存控制器 FSTENV 浮点检查保存环境 FSTP 浮点保存出栈 FSTSW 浮点检查保存状态器 FSUB 浮点减 FSUBP 浮点减出栈 FSUBR 浮点反减 FSUBRP 浮点反减出栈 FTST 浮点比零 FUCOM 浮点无序比较 FUCOMI 浮点反比加载标志 FUCOMIP 浮点反比加载标志出栈 FUCOMP 浮点无序比较出栈 FUCOMPP 浮点无序比较出栈二 FWAIT 浮点等 FXAM 浮点检查 FXCH 浮点交换 FXTRACT 浮点分解 FYL2X 浮点求L2X FYL2XP1 浮点求L2XP1 MOVED 媒体双字传送 MOVEQ 媒体四字传送 PACKSSDW 媒体符号双字压缩 PACKSSWB 媒体符号字压缩 PACKUSWB 媒体无符号字压缩 PADDB 媒体截断字节加 PADDD 媒体截断双字加 PADDSB 媒体符号饱和字节加 PADDSIW   PADDSW 媒体符号饱和字加 PADDUSB 媒体无符号饱和字节加 PADDUSW 媒体无符号饱和字加 PADDW 媒体截断字加 PAND 媒体与 PANDN 媒体与非 PAVEB   PCMPEQB 媒体字节比等 PCMPEQD 媒体双字比等 PCMPEQW 媒体字比等 PCMPGTB 媒体字节比大 PCMPGTD 媒体双字比大 PCMPGTW 媒体字比大 PDISTIB   PMACHRIW   PMADDWD   PMAGW   PMULHRIW   PMULHRWC   PMULHW   PMVGEZB   PMVLZB   PMVNZB   PMVZB   POR 媒体或 PSLLD 媒体双字左移 PSLLQ 媒体四字左移 PSLLW 媒体字左移 PSRAD 媒体双字算术右移 PSRAW 媒体字算术右移 PSRLD 媒体双字右移 PSRLQ 媒体四字右移 PSRLW 媒体字右移 PSUBB 媒体截断字节减 PSUBSB 媒体符号饱和字节减 PSUBSIW   PSUBSW 媒体符号饱和字减 PSUBUSB 媒体无符号饱和字节减 PSUBUSW 媒体无符号饱和字减 PSUBW 媒体截断字减 PUNPCKHBW 媒体字节高位解压 PUNPCKHDQ 媒体双字高位解压 PUNPCKHWD 媒体字高位解压 PUNPCKLBW 媒体字节低位解压 PUNPCKLDQ 媒体双字低位解压 PUNPCKLWD 媒体字低位解压