在STEP7中可以對整數(shù)、長整數(shù)和實數(shù)進行加、減、乘、除算術(shù)運算。算術(shù)運算指令在累加器1和2中進行,在累加器2中的值作為被減數(shù)或被除數(shù)。算術(shù)運算的結(jié)果保存在累加器1中,累加器1原有的值被運算結(jié)果覆蓋,累加器2中的值保持不變。CPU在進行算術(shù)運算時,對RLO不產(chǎn)生影響。然而算術(shù)運算指令對狀態(tài)字的CC1和CC0、OV、OS位產(chǎn)生影響?梢杂梦徊僮髦噶罨驐l件跳轉(zhuǎn)指令,對狀態(tài)字中的標(biāo)志位進行判斷操作。
1.整數(shù)算術(shù)運算
整數(shù)算術(shù)運算指令包括:
指令“+I”:將累加器1、2低字中的16位整數(shù)相加,16位整數(shù)結(jié)果保存在累加器1低字中。
指令“-I”:將累加器2低字中的16位整數(shù)減去累加器1低字中的內(nèi)容.結(jié)果保存在累加器1中。
指令“*I”:將累加器1、2低字中的16位整數(shù)相乘,結(jié)果為32位整數(shù)保存在累加器1中。
指令“/I”:將累加器2低字中的16位整數(shù)除去累加器1低字中的內(nèi)容,商為16位整數(shù)并保存在累加器1低字中,余數(shù)存放在累加器1高字中。
指令“+D”:將累加器1、2中的32位整數(shù)相加,32位整數(shù)結(jié)果保存在累加器1中。
指令“-D”:將累加器2中的32位整數(shù)減去累加器1中的內(nèi)容,結(jié)果保存在累加器1中。
指令“*D”:將累加器1、2中的32位整數(shù)相乘,結(jié)果為32位整數(shù)保存在累加器1中。
指令“/D”:將累加器2中的32位整數(shù)除以累加器1中的內(nèi)容,商為32位整數(shù)并保存在累加器1中.余數(shù)被忽略。
指令“MOD”:將累加器2中的32位整數(shù)除以累加器1中的內(nèi)容,余數(shù)保存在累加器1中,商被忽略。
指令“+”:累加器1中加一個16位或2位整數(shù)常量,結(jié)果保存在累加器中。
2.實數(shù)算術(shù)運算
實數(shù)算術(shù)運算指令包括:
指令“+R”:將累加器1、2中的32位實數(shù)相加,32位結(jié)果保存在累加器1中。
指令“-R”:將累加器2中的32位實數(shù)減去累加器1中的內(nèi)容,結(jié)果保存在累加器1中。
指令“*R”:將累加器1、2中的32位實數(shù)相乘,32位乘積保存在累加器1中。
指令“/R”:將累加器2中的32位實數(shù)除去累加器l的內(nèi)容,32位的商并保存在累加器中。
指令“ABS”:對累加器]中的32位實數(shù)取絕對值。
3.梯形圖算術(shù)運算方塊指令
以上介紹的語句表運算指令,都有對應(yīng)的梯形圖方塊指令。在編程器上,使用梯形圖指令瀏覽器,可以選擇需要的方塊指令。下面舉例說明算術(shù)方塊指令的用法。
【例5-5】 編寫實現(xiàn)MD4= (IW0+DBW3)×15/MD 0運算的程序。
【解】 圖5-18給出了一個實現(xiàn)上述運算的梯形圖程序。
圖5-18 算術(shù)運算方塊指令
實現(xiàn)相同運算的語句程序如下:
L IW 0 ∥將輸入字IW0的內(nèi)容裝入累加器1
L DBW 3 ∥將數(shù)據(jù)字DBW3的內(nèi)容裝入累加器1中,累加器1原內(nèi)容裝入累加器2中
+I ∥累加器2與累加器1相加,結(jié)果存入累加器1中
L +15 ∥將常數(shù)15裝入累加器1,累加器1原內(nèi)容裝入累加器2
*I ∥累加器2與累加器1相乘,結(jié)果為長整數(shù)在累加器1中
L MD 0 ∥將存儲雙字MD 0的內(nèi)容裝入累加器1,累加器1原內(nèi)容裝入累加器2
/I ∥累加器2除累加器1,結(jié)果的整數(shù)部分在累加器1中
T MD 4 ∥將運算結(jié)果傳送至存儲雙字MD4