浮点数运算指令包括浮点数的比较、四则运算、开方运算和三角函数等功能,它们分布在指令编号为FNC110 - FNC119、FNC120 - FNC129、FNC130 - FNC139等指令之中。
(1)浮点数比较指令
浮点数比较指令如表4-14所示。
表4-14 浮点数比较指令
1)二进制浮点数比较指令ECMP(FNC110)。二进制浮点数比较指令ECMP用于比较两个二进制的浮点数。该指令源操作数可取K、H和D,目标操作数可用Y、M和S。为32位运算指令,占13个程序步。
示例及使用:如图4-63所示,将两源操作数进行比较,比较结果反映在目标操作数中,如果操作数为常数,则自动转换成二进制浮点数值处理。
2)二进制浮点数区间比较指令EZCP (FNC111)。EZCP (P)指令的功能是将源操作数的内容与用二进制浮点数值指定的上下两点的范围比较,对应的结果用ON/OFF反映在目标操作数上。
示例及使用:如图4-64所示。该指令为32位运算指令,占17个程序步。源操作数可以是K、H和D;目标操作数为Y、M和S。[S1.]应小于[S2.],操作数为常数时将被自动转换成二进制浮点数值处理。
图4-63 二进制浮点数比较指令的使用
图4-64 二进制浮点数区间比较指令的使用
(2)二进制浮点数的四则运算指令
二进制浮点数的四则运算指令如表4-15所示。
表4-15 二进制浮点数的四则运算指令
浮点数的四则运算指令有加法指令EADD (FNC120)、减法指令ESUB (FNC121)、乘法指令EMUL (FNC122)和除法指令Ep (FNC123)四条指令。四则运算指令的使用如图4-65所示,它们都是将两源操作数中的浮点数进行运算后送入目标操作数。当除数为0时出现运算错误,不执行指令。此类指令只有32位运算,占13个程序步。运算结果影响标志位M8020(零标志)、M8021(借位标志)、M8022(进位标志)。源操作数可取K、H和D,目标操作数为D。如有常数参与运算,则自动转化为浮点数。
图4-65 二进制浮点数四则运算指令的使用
二进制的浮点运算还有开平方、三角函数运算等指令,在此不再说明。