浮點(diǎn)數(shù)運(yùn)算指令包括浮點(diǎn)數(shù)的比較、四則運(yùn)算、開方運(yùn)算和三角函數(shù)等功能,它們分布在指令編號(hào)為FNC110 - FNC119、FNC120 - FNC129、FNC130 - FNC139等指令之中。
(1)浮點(diǎn)數(shù)比較指令
浮點(diǎn)數(shù)比較指令如表4-14所示。
表4-14 浮點(diǎn)數(shù)比較指令
1)二進(jìn)制浮點(diǎn)數(shù)比較指令ECMP(FNC110)。二進(jìn)制浮點(diǎn)數(shù)比較指令ECMP用于比較兩個(gè)二進(jìn)制的浮點(diǎn)數(shù)。該指令源操作數(shù)可取K、H和D,目標(biāo)操作數(shù)可用Y、M和S。為32位運(yùn)算指令,占13個(gè)程序步。
示例及使用:如圖4-63所示,將兩源操作數(shù)進(jìn)行比較,比較結(jié)果反映在目標(biāo)操作數(shù)中,如果操作數(shù)為常數(shù),則自動(dòng)轉(zhuǎn)換成二進(jìn)制浮點(diǎn)數(shù)值處理。
2)二進(jìn)制浮點(diǎn)數(shù)區(qū)間比較指令EZCP (FNC111)。EZCP (P)指令的功能是將源操作數(shù)的內(nèi)容與用二進(jìn)制浮點(diǎn)數(shù)值指定的上下兩點(diǎn)的范圍比較,對(duì)應(yīng)的結(jié)果用ON/OFF反映在目標(biāo)操作數(shù)上。
示例及使用:如圖4-64所示。該指令為32位運(yùn)算指令,占17個(gè)程序步。源操作數(shù)可以是K、H和D;目標(biāo)操作數(shù)為Y、M和S。[S1.]應(yīng)小于[S2.],操作數(shù)為常數(shù)時(shí)將被自動(dòng)轉(zhuǎn)換成二進(jìn)制浮點(diǎn)數(shù)值處理。
圖4-63 二進(jìn)制浮點(diǎn)數(shù)比較指令的使用
圖4-64 二進(jìn)制浮點(diǎn)數(shù)區(qū)間比較指令的使用
(2)二進(jìn)制浮點(diǎn)數(shù)的四則運(yùn)算指令
二進(jìn)制浮點(diǎn)數(shù)的四則運(yùn)算指令如表4-15所示。
表4-15 二進(jìn)制浮點(diǎn)數(shù)的四則運(yùn)算指令
浮點(diǎn)數(shù)的四則運(yùn)算指令有加法指令EADD (FNC120)、減法指令ESUB (FNC121)、乘法指令EMUL (FNC122)和除法指令Ep (FNC123)四條指令。四則運(yùn)算指令的使用如圖4-65所示,它們都是將兩源操作數(shù)中的浮點(diǎn)數(shù)進(jìn)行運(yùn)算后送入目標(biāo)操作數(shù)。當(dāng)除數(shù)為0時(shí)出現(xiàn)運(yùn)算錯(cuò)誤,不執(zhí)行指令。此類指令只有32位運(yùn)算,占13個(gè)程序步。運(yùn)算結(jié)果影響標(biāo)志位M8020(零標(biāo)志)、M8021(借位標(biāo)志)、M8022(進(jìn)位標(biāo)志)。源操作數(shù)可取K、H和D,目標(biāo)操作數(shù)為D。如有常數(shù)參與運(yùn)算,則自動(dòng)轉(zhuǎn)化為浮點(diǎn)數(shù)。
圖4-65 二進(jìn)制浮點(diǎn)數(shù)四則運(yùn)算指令的使用
二進(jìn)制的浮點(diǎn)運(yùn)算還有開平方、三角函數(shù)運(yùn)算等指令,在此不再說明。