以前就听说过浮点运算,但是只是听说过名称而已,很少运用,今天因为写程序需要用到浮点运算的运算命令,瞬间头晕了,这是什么玩意儿,说好的实数运算怎么在计算机上变成这么复杂的东西,今天就总结一下平时需要用到的浮点运算指令:

首先需要认清一点浮点运算就是数学里的实数运算,只不过是要在计算机中运算存储罢了,因为计算机只能存储整数,因此要想在计算机上进行浮点运算的确有点麻烦。

浮点运算使用三种不同的数据:

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 媒体字低位解压