以前就听说过浮点运算,但是只是听说过名称而已,很少运用,今天因为写程序需要用到浮点运算的运算命令,瞬间头晕了,这是什么玩意儿,说好的实数运算怎么在计算机上变成这么复杂的东西,今天就总结一下平时需要用到的浮点运算指令:
首先需要认清一点浮点运算就是数学里的实数运算,只不过是要在计算机中运算存储罢了,因为计算机只能存储整数,因此要想在计算机上进行浮点运算的确有点麻烦。
浮点运算使用三种不同的数据:
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
媒体字低位解压