1、FLD
指令格式:
FLD STReg/MemReal
指令功能:
将浮点数据压入协处理器的堆栈中。当进行内存单元内容压栈时,系统会自动决定传送数据的精度。比如:用DD或REAL4定义的内存单元数值是单精度数等
fld dword ptr ds:[eax+0xC] 意思是将[eax+c]的值以浮点型放进ST0里面
2、FST
指令格式: 指令功能: | FST STReg/MemReal 将协处理器堆栈栈顶的数据传送到目标操作数中。在进行数据传送时,系统自动根据控制寄存器中舍入控制位的设置把栈顶浮点数舍入成相应精度的数据。 |
3、FSTP
指令格式: | FSTP STReg/MemReal | |
指令功能: | 与FST相类似,所不同的是:指令FST执行完后,不进行堆栈的弹出操作,即:堆栈不发生变化,而指令FSTP执行完后,则需要进行堆栈的弹出操作,堆栈将发生变化 |
fstp dword ptr ss:[ebp-0x20] 意思是将ST0里面的浮点值,放到ebp-20这个内存里面,同是清空ST0里面的值
4:
fsub
格式
fsub memvar
// st0=st0-memvar
5:
fmul
格式
fmul memvar
// st0=st0*memvar
6:
FDIV 格式
FDIVmemvar
// st0=st0 / memvar
7:
FILD
整数入栈指令
//fld
FILD memvar
// st0=(double)memvar
与之相似的指令有FIST 把st0的数转换成整数放置到变量中
8:
CVTTPS2PI
把mem这个浮点数截断取整 后放到通用寄存器里边
CVTTPS2PI mm0,mem
// mm0
CVTTPS2PI MM0,DQWORD PTR SS:[ebp]
//[eax]
CVTTPS2PI MM0,DQWORD PTR SS:[ESP]