在STEP7中可以對整數、長整數和實數進行加、減、乘、除算術運算。算術運算指令在累加器1和2中進行,在累加器2中的值作為(wei) 被減數或被除數。算術運算的結果保存在累加器1中,累加器1原有的值被運算結果覆蓋,累加器2中的值保持不變。CPU在進行算術運算時,對RLO不產(chan) 生影響。然而算術運算指令對狀態字的CC1和CC0、OV、OS位產(chan) 生影響。可以用位操作指令或條件跳轉指令,對狀態字中的標誌位進行判斷操作。
1.整數算術運算
整數算術運算指令包括:
指令“+I”:將累加器1、2低字中的16位整數相加,16位整數結果保存在累加器1低字中。
指令“-I”:將累加器2低字中的16位整數減去累加器1低字中的內(nei) 容.結果保存在累加器1中。
指令“*I”:將累加器1、2低字中的16位整數相乘,結果為(wei) 32位整數保存在累加器1中。
指令“/I”:將累加器2低字中的16位整數除去累加器1低字中的內(nei) 容,商為(wei) 16位整數並保存在累加器1低字中,餘(yu) 數存放在累加器1高字中。
指令“+D”:將累加器1、2中的32位整數相加,32位整數結果保存在累加器1中。
指令“-D”:將累加器2中的32位整數減去累加器1中的內(nei) 容,結果保存在累加器1中。
指令“*D”:將累加器1、2中的32位整數相乘,結果為(wei) 32位整數保存在累加器1中。
指令“/D”:將累加器2中的32位整數除以累加器1中的內(nei) 容,商為(wei) 32位整數並保存在累加器1中.餘(yu) 數被忽略。
指令“MOD”:將累加器2中的32位整數除以累加器1中的內(nei) 容,餘(yu) 數保存在累加器1中,商被忽略。
指令“+”:累加器1中加一個(ge) 16位或2位整數常量,結果保存在累加器中。
2.實數算術運算
實數算術運算指令包括:
指令“+R”:將累加器1、2中的32位實數相加,32位結果保存在累加器1中。
指令“-R”:將累加器2中的32位實數減去累加器1中的內(nei) 容,結果保存在累加器1中。
指令“*R”:將累加器1、2中的32位實數相乘,32位乘積保存在累加器1中。
指令“/R”:將累加器2中的32位實數除去累加器l的內(nei) 容,32位的商並保存在累加器中。
指令“ABS”:對累加器]中的32位實數取絕對值。
3.梯形圖算術運算方塊指令
以上介紹的語句表運算指令,都有對應的梯形圖方塊指令。在編程器上,使用梯形圖指令瀏覽器,可以選擇需要的方塊指令。下麵舉(ju) 例說明算術方塊指令的用法。
【例5-5】 編寫(xie) 實現MD4= (IW0+DBW3)×15/MD 0運算的程序。
【解】 圖5-18給出了一個(ge) 實現上述運算的梯形圖程序。
圖5-18 算術運算方塊指令
實現相同運算的語句程序如下:
L IW 0 ∥將輸入字IW0的內(nei) 容裝入累加器1
L DBW 3 ∥將數據字DBW3的內(nei) 容裝入累加器1中,累加器1原內(nei) 容裝入累加器2中
+I ∥累加器2與(yu) 累加器1相加,結果存入累加器1中
L +15 ∥將常數15裝入累加器1,累加器1原內(nei) 容裝入累加器2
*I ∥累加器2與(yu) 累加器1相乘,結果為(wei) 長整數在累加器1中
L MD 0 ∥將存儲(chu) 雙字MD 0的內(nei) 容裝入累加器1,累加器1原內(nei) 容裝入累加器2
/I ∥累加器2除累加器1,結果的整數部分在累加器1中
T MD 4 ∥將運算結果傳(chuan) 送至存儲(chu) 雙字MD4