取余数(IEEE),同FPREM,但是使用IEEE标准[486]FRNDINT 取整(四舍五入)
st(0) <- INT( st(0) ); depends on RC flag FABS 求绝对值
st(0) <- ABS( st(0) ); removes sign FCHS
改变符号位(求负数) st(0) <-st(0) F2XM1 计算(2 ^ x)-1 st(0) <- (2 ^ st(0)) - 1 FYL2X 计算Y * log2(X)
st(0)为Y;st(1)为X;将st(0)和st(1)变为st(0) * log2( st(1) )的值 FCOS 余弦函数Cos st(0) <- COS( st(0) ) FPTAN
正切函数tan st(0) <- TAN( st(0) ) FPATAN
反正切函数arctan st(0) <- ATAN( st(0) ) FSIN 正弦函数sin st(0) <- SIN( st(0) )
FSINCOS sincos函数
st(0) <-SIN( st(0) ),并且压入st(1)
st(0) <- COS( st(0) )FYL2XP1 计算Y * log2(X+1)
st(0)为Y; st(1)为X; 将st(0)和st(1)变为st(0) * log2( st(1)+1 )的值
处理器控制指令 FINIT
初始化FPUFSTSW AX 保存状态字的值到AX AX<- MSW
FSTSW dest
保存状态字的值到dest
dest<-MSW (mem16)FLDCW src 从src装入FPU的控制字 FPU CW <-src (mem16)
FSTCW dest
将FPU的控制字保存到dest dest<- FPU CWFCLEX 清除异常 FSTENV dest
保存环境到内存地址dest处 保存状态字、控制字、标志字和异常指针的值
FLDENV src
从内存地址src处装入保存的环境FSAVE dest 保存FPU的状态到dest处 94字节FRSTOR src 从src处装入由FSAVE保存的FPU状态 FINCSTP
增加FPU的栈指针值
st(6) <-st(5); st(5) <-st(4),...,st(0) <-?
FDECSTP
减少FPU的栈指针值
st(0) <-st(1); st(1) <-st(2),...,st(7) <-? FFREE st(i) 标志寄存器st(i)未被使用 FNOP
空操作,等同CPU的nop st(0) <-st(0)
WAIT/FWAIT
同步FPU与CPU:停止CPU的运行,直到FPU完成当前操作码 FXCH
交换指令,交换st(0)和st(1)的值 st(0) <-st(1)
st(1) <- st(0)