、 數(shù)據(jù)傳送指令
數(shù)據(jù)傳送指令包括MOV(傳送)、SMOV(BCD碼移位傳送)、CML(取反傳送)、BMOV(數(shù)據(jù)塊傳送)、FMOV(多點傳送)、XCH(數(shù)據(jù)交換)。這里主要介紹MOV(傳送)指令。
傳送指令MOV將源操作數(shù)據(jù)傳送到指定目標,其指令代碼為FNC12,源操作數(shù)[S·]可取所有的數(shù)據(jù)類型,即K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z,其目標操作數(shù)[D·]為KnY、KnM、KnS、 T、C、D、V、Z。
如圖1所示,,當X0為ON時,執(zhí)行連續(xù)執(zhí)行型指令,數(shù)據(jù)100被自動轉(zhuǎn)換成二進制數(shù)且傳送給D10,當X0變?yōu)?span>OFF時,不執(zhí)行指令,但數(shù)據(jù)保持不變;當X1為ON時,T0當前值被讀出且傳送給D20;當X2為ON時,數(shù)據(jù)100傳送給D30,定時器T20的設定值被間接指定為10秒,當M0閉合時,T20開始計時;MOV(P)為脈沖執(zhí)行型指令,當X5由OFF變?yōu)?span>ON時指令執(zhí)行一次,(D10)的數(shù)據(jù)傳送給(D12),其它時刻不執(zhí)行,當X5變?yōu)?span>OFF時,指令不執(zhí)行,但數(shù)據(jù)也不會發(fā)生變化;X3為ON時,(D1、D0)的數(shù)據(jù)傳送給(D11、D10),當X4為ON時,將(C235)的當前值傳送給(D21、D20)。注意:運算結果以32位輸出的應用指令、32位二進制立即數(shù)及32位高速計數(shù)器當前值等數(shù)據(jù)的傳送,必須使用(D)MOV或(D)MOV(P)指令。
如圖2所示,可用MOV指令等效實現(xiàn)由X0~X3對Y0~Y3的順序控制。
2、比較指令
比較指令有比較(CMP)、區(qū)域比較(ZCP)兩種,CMP的指令代碼為FNC10,ZCP的指令代碼為FNC11,兩者待比較的源操作數(shù)[S·]均為K、 H、KnX、KnY、KnM、KnS、T、C、D、V、Z,其目標操作數(shù)[D·]均為Y、M、S。
CMP指令的功能是將源操作數(shù)[S1·]和[S2·]的數(shù)據(jù)進行比較,結果送到目標操作元件[D·]中。在圖3中,當X0為ON時,將十進制數(shù)100與計數(shù)器C2的當前值比較,比較結果送到M0~M2中,若100>C2的當前值時,M0為ON,若100=C2的當前值時,M1為ON,
若100<C2的當前值時,M2為ON。當X0為OFF時,不進行比較,M0~M2的狀態(tài)保持不變。
ZCP指令的功能是將一個源操作數(shù)[S·]的數(shù)值與另兩個源操作數(shù)[S1·]和[S2·]的數(shù)據(jù)進行比較,結果送到目標操作元件[D·]中,源數(shù)據(jù)[S1·]不能大于[S2·]。在圖4中,當X1為ON時,執(zhí)行ZCP指令,將T2的當前值與10和150比較,比較結果送到M0~M2中,若10>T2的當前值時,M0為ON,若10≤T2的當前值≤150時,M1為ON,若150<T2的當前值時,M2為ON。當X1為OFF時,ZCP指令不執(zhí)行,M0~M2的狀態(tài)保持不變。
3、加1指令和減1指令
加1指令INC和減1指令DEC的操作數(shù)均可取KnY、KnM、KnS、T、C、D、V、,它們不影響零標志、借位標志和進位標志。INC的指令代碼為FNC24,DEC的指令代碼為FNC25。INC指令的功能是將指定的目標操作元件[D·]中二進制數(shù)自動加1,DEC指令的功能是將指定的目標操作元件[D·]中二進制數(shù)自動減1,
如圖5所示,當X0每次由OFF變?yōu)?span>ON時,D20中的數(shù)自動增加1,當X1每次由OFF變?yōu)?span>ON時,D21中的數(shù)自動減1。
若用連續(xù)執(zhí)行型加1指令INC或連續(xù)執(zhí)行型減1指令DEC,當條件成立時,在每個掃描周期內(nèi)指定的目標操作元件[D·]中數(shù)據(jù)要自動加1或自動減1。16位數(shù)據(jù)運算時,+32767再加1就變?yōu)?span>-32768,-32768再減1就變?yōu)?span>+32767。32位數(shù)據(jù)運算時,+2147483647再加1就變?yōu)?span>-2147483648,-2147483648再減1就變?yōu)?span>+2147483647。






簡繁切換