一、傳送類指令 |
(一)單一傳(chuan) 送 1、MOVB,字節傳(chuan) 送指令 使能輸入有效時,把一個(ge) 單字節無符號數據由IN傳(chuan) 送到OUT所指的字節存儲(chu) 單元。 IN的尋址範圍:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD和常數。 VB、IB、QB、MB、SB、SMB、 LB、AC、*VD、*AC、*LD。 指令格式: MOVB IN1, OUT
例: MOVB VB0, QB0 2、BIR,傳(chuan) 送字節立即讀指令 使能輸入有效時,立即讀取單字節物理輸入區數據IN,並傳(chuan) 送到OUT所指的字節存儲(chu) 單元。 IN的尋址範圍:IB OUT的尋址範圍:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD。 指令格式:BIR IN1, OUT
例:BIR IB0, VB10 (二)塊傳(chuan) 送 指令可用來進行一次多個(ge) (最多255個(ge) )數據的傳(chuan) 送,數據塊類型可以是字節塊、字塊、雙字塊。 三條指令中N的尋址範圍都是:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD和常數。 使ENO斷開的出錯條件:SM4.3(運行時間);0006(間接尋址);0091(數超界)。
|
(一)左移和右移
1、字節左移和字節右移
SLB和SRB,字節左移和字節右移。使能輸入有效時,把字節型輸入數據IN左移或右移N位後,再將結果輸出到OUT所指的字節存儲(chu) 單元。最大實際可移位次數為(wei) 8。
圖4 字節左移和字節右移
以字節左移指令為(wei) 例,指令執行情況如表所示。
圖5 字節左移指令
2、字左移和字右移,SLW和SRW
使能輸入有效時,把字型輸入數據IN左移或右移N位後,再將結果輸出到OUT所指的字存儲(chu) 單元。最大實際可移位次數為(wei) 16。
指令格式: SLW OUT, N (字左移);SRW OUT, N (字右移)
例: SLW MW0, 2;SRW LW0, 3
以字右移指令為(wei) 例,指令執行情況如表所示。
圖6 字右移指令
3、雙字左移和雙字右移,SLD和SRD
使能輸入有效時,把雙字型輸入數據IN左移或右移N位後,再將結果輸出到OUT所指的雙字存儲(chu) 單元。最大實際可移位次數為(wei) 32。
指令格式:SLD OUT, N (雙字左移);SRD OUT, N (雙字右移)
例: SLD MD0, 2;SRD LD0, 3
(二)循環左移、循環右移
循環左移和循環右移根據所循環移位的數的長度分別又可分為(wei) 字節型、字型、雙字型。
移位數據存儲(chu) 單元的移出端與(yu) 另一端相連,同時又與(yu) SM1.1(溢出)相連,所以最後被移出的位被移到另一端的同時,也被放到SM1.1位存儲(chu) 單元。
例如在循環右移時,移位數據的最右端位移入最左端,同時又進入SM1.1。SM1.1始終存放最後一次被移出的位。
循環移位的類型:
◆ 字節循環左移和字節循環右移
◆ 字循環左移和字循環右移
◆ 雙字循環左移和雙字循環右移
(三)寄存器移位
SHRB,寄存器移位指令:該指令在梯形圖中有3個(ge) 數據輸入端:DATA為(wei) 數值輸入, 將該位的值移入移位寄存器;S_BIT為(wei) 移位寄存器的最低位端;N指定移位寄存器的長度。每次使能輸入有效時,整個(ge) 移位寄存器移動1位。
移位寄存器長度在指令中指定,沒有字節型、字型、雙字型之分。可指定的最大長度為(wei) 64位,可正也可負。
圖11 移位寄存器
圖12 指令SHRB執行結果三、字節交換指令
使能輸入有效時,將字型輸入數據IN的高字節和低字節進行交換。
本指令隻對字型數據進行處理,指令的執行不影響的特殊存儲(chu) 器位。
使能流輸出ENO斷開的出錯條件:SM4.3(運行時間);0006(間接尋址)。
指令格式: SWAP IN (字節交換)
圖13 指令SWAP執行結果四、存儲(chu) 器填充指令,FILL
使能輸入有效時,用字型輸入數據IN填充從(cong) 輸出OUT所指的單元開始的N個(ge) 字存儲(chu) 單元。
填充指令隻對字型數據進行處理,N值為(wei) 字節型,可取從(cong) 1~255的整數。www.diangon.com指令的執行不影響的特殊存儲(chu) 器位。
使能流輸出ENO斷開的出錯條件:SM4.3(運行時間);0006(間接尋址);0091(操作數超界)。
指令格式: FILL IN, OUT, N
圖14 存儲(chu) 器填充指令