1.比較指令
比較指令包括cmp(比較)和zcp(區(qū)間比較)二條。
(1)比較指令cmp (d)cmp(p)指令的編號為fnc10,是將源操作數(shù)[s1.]和源操作數(shù)[s2.]的數(shù)據(jù)進行比較,比較結(jié)果用目標元件[d.]的狀態(tài)來表示。如圖1所示,當x1為接通時,把常數(shù)100與c20的當前值進行比較,比較的結(jié)果送入m0~m2中。x1為off時不執(zhí)行,m0~m2的狀態(tài)也保持不變。
圖1 比較指令的使用
(2)區(qū)間比較指令zcp (d)zcp(p)指令的編號為fnc11,指令執(zhí)行時源操作數(shù)[s.]與[s1.]和[s2.]的內(nèi)容進行比較,并比較結(jié)果送到目標操作數(shù)[d.]中。如圖2所示,當x0為on時,把c30當前值與k100和k120相比較,將結(jié)果送m3、m4、m5中。x0為off,則zcp不執(zhí)行,m3、m4、m5不變。
圖2 區(qū)間比較指令的使用
使用比較指令cmp/zcp時應注意:
1)[s1.]、[s2.]可取任意數(shù)據(jù)格式,目標操作數(shù)[d.]可取y、m和s。
2)使用zcp時,[s2.]的數(shù)值不能小于[s1.]
3) 所有的源數(shù)據(jù)都被看成二進制值處理;
2.傳送類指令
(1)傳送指令mov (d)mov(p)指令的編號為fnc12,該指令的功能是將源數(shù)據(jù)傳送到指定的目標。如圖3所示,當x0為on時,則將[s.]中的數(shù)據(jù)k100傳送到目標操作元件[d.]即d10中。在指令執(zhí)行時,常數(shù)k100會自動轉(zhuǎn)換成二進制數(shù)。當x0為off時,則指令不執(zhí)行,數(shù)據(jù)保持不變。
圖3 傳送指令的使用
使用應用mov指令時應注意:
1)源操作數(shù)可取所有數(shù)據(jù)類型,標操作數(shù)可以是kny、knm、kns、t、c、d、v、z。
2)16位運算時占5個程序步,32位運算時則占9個程序步。
(2)移位傳送指令smov smov(p)指令的編號為fnc13。該指令的功能是將源數(shù)據(jù)(二進制)自動轉(zhuǎn)換成4位bcd碼,再進行移位傳送,傳送后的目標操作數(shù)元件的bcd碼自動轉(zhuǎn)換成二進制數(shù)。如圖4所示,當x1為on時,將d1中右起第4位(m1=4)開始的2位(m2=2) bcd碼移到目標操作數(shù)d2的右起第3位(n=3)和第2位。然后d2中的bcd碼會自動轉(zhuǎn)換為二進制數(shù),而d2中的第1位和第4位bcd碼不變。
圖4 移位傳送指令的使用
使用移位傳送指令時應該注意:
1)源操作數(shù)可取所有數(shù)據(jù)類型,目標操作數(shù)可為kny、knm、kns、t、c、d、v、z。
2)smov指令只有16位運算,占11個程序步。
(3)取反傳送指令cml (d)cml(p)指令的編號為fnc14。它是將源操作數(shù)元件的數(shù)據(jù)逐位取反并傳送到指定目標。如圖5所示,當x0為on時,執(zhí)行cml,將d0的低4位取反向后傳送到y(tǒng)3~y0中。
圖5 取反傳送指令的使用
使用取反傳送指令cml時應注意:
1)源操作數(shù)可取所有數(shù)據(jù)類型,目標操作數(shù)可為kny、knm、kns、t、c、d、v、z.,若源數(shù)據(jù)為常數(shù)k,則該數(shù)據(jù)會自動轉(zhuǎn)換為二進制數(shù)。
2)16位運算占5個程序步,32位運算占9個程序步。
(4)塊傳送指令bmov bmov(p)指令的alce編號為fnc15,是將源操作數(shù)指定元件開始的n個數(shù)據(jù)組成數(shù)據(jù)塊傳送到指定的目標。如圖6所示,傳送順序既可從高元件號開始,也可從低元件號開始,傳送順序自動決定。若用到需要指定位數(shù)的位元件,則源操作數(shù)和目標操作數(shù)的指定位數(shù)應相同。
圖6 塊傳送指令的使用
使用塊傳送指令時應注意:
1)源操作數(shù)可取knx、 kny、knm、kns、t、c、d和文件寄存器,目標操作數(shù)可取. knt、knm、kns、t、c和d;
2)只有16位操作,占7個程序步;
3)如果元件號超出允許范圍,數(shù)據(jù)則僅傳送到允許范圍的元件。
(5)多點傳送指令fmov (d)fmov(p)指令的編號為fnc16。它的功能是將源操作數(shù)中的數(shù)據(jù)傳送到指定目標開始的n個元件中,傳送后n個元件中的數(shù)據(jù)完全相同。如圖7所示,當x0為on時,把k0傳送到d0~d9中。
圖7 多點傳送指令應用
使用多點傳送指令fmov時應注意:
1)源操作數(shù)可取所有的數(shù)據(jù)類型,目標操作數(shù)可取knx、knm、kns、t、c、和d,n小等于512;
2)16位操作占7的程序步,32位操作則占13個程序步;
3)如果元件號超出允許范圍,數(shù)據(jù)僅送到允許范圍的元件中。
3.數(shù)據(jù)交換指令
數(shù)據(jù)交換指令(d)xch(p)的編號為fnc17,它是將數(shù)據(jù)在指定的目標元件之間交換。如圖8所示,當x0為on時,將d1和d19中的數(shù)據(jù)相互交換。
圖8 數(shù)據(jù)交換指令的使用
使用數(shù)據(jù)交換指令應該注意:
1)操作數(shù)的元件可取kny、knm、kns、t、c、d、v和z.。
2)交換指令一般采用脈沖執(zhí)行方式,否則在每一次掃描周期都要交換一次。
3)16位運算時占5個程序步,32位運算時占9個程序步。
4.數(shù)據(jù)變換指令
(1)bcd變換指令bcd (d)bcd(p)指令的alce編號為fnc18。它是將源元件中的二進制數(shù)轉(zhuǎn)換成bcd碼送到目標元件中,如圖9所示。
如果指令進行16位操作時,執(zhí)行結(jié)果超出0~9999范圍將會出錯;當指令進行32位操作時,執(zhí)行結(jié)果超過0~99999999范圍也將出錯。中內(nèi)部的運算為二進制運算,可用bcd指令將二進制數(shù)變換為bcd碼輸出到七段顯示器。
(2)bin變換指令bin (d)bin(p)指令的編號為fnc19。它是將源元件中的bcd數(shù)據(jù)轉(zhuǎn)換成二進制數(shù)據(jù)送到目標元件中,如圖9所示。常數(shù)k不能作為本指令的操作元件,因為在任何處理之前它們都會被轉(zhuǎn)換成二進制數(shù)。
圖9 數(shù)據(jù)變換指令的使用
使用bcd/bin指令時應注意:
1)源操作數(shù)可取knk、kny、knm、kns、t、c、d、v和z,目標操作數(shù)可取kny、knm、kns、t、c、d、v和z;
2)16位運算占5個程序步,32位運算占9個程序步。



















