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



















