- 艾寶物聯IOBOV? ─ 工業無線測控專家
循環移位將移位數據存儲單元的首尾相連,同時又與溢出標志SM1.1連接,SM1.1用來存放被移出的位。指令格式見表6。
(1)循環左移位指令(ROL)
使能輸入有效時,將IN輸入無符號數(字節、字或雙字)循環左移N位后,將結果輸出到OUT所指定的存儲單元中,移出的最后一位的數值送溢出標志位SM1.1。當需要移位的數值是零時,零標志位SM1.0為1。
(2)循環右移位指令(ROR)
使能輸入有效時,將IN輸入無符號數(字節、字或雙字)循環右移N位后,將結果輸出到OUT所指定的存儲單元中,移出的最后一位的數值送溢出標志位SM1.1。當需要移位的數值是零時,零標志位SM1.0為1。
(3)移位次數N≥數據類型(B、W、D)時的移位位數的處理
如果操作數是字節,當移位次數N≥8時,則在執行循環移位前,先對N進行模8操作(N除以8后取余數),其結果0-7為實際移動位數。
如果操作數是字,當移位次數N≥16時,則在執行循環移位前,先對N進行模16操作(N除以16后取余數),其結果0-15為實際移動位數。
如果操作數是雙字,當移位次數N≥32時,則在執行循環移位前,先對N進行模32操作(N除以32后取余數),其結果0-31為實際移動位數。
(4)使ENO = 0的錯誤條件:0006(間接尋址錯誤),SM4.3(運行時間)。
表6 循環左、右移位指令格式及功能
LAD |
|
|
|
STL |
RLB OUT,N RRB OUT,N |
RLW OUT,N RRW OUT,N |
RLD OUT,N RRD OUT,N |
操作數及數據類型 |
IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量。 OUT:VB, IB, QB, MB, SB, SMB, LB, AC。 數據類型:字節 |
IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量。 OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AC。 數據類型:字 |
IN:VD, ID, QD, MD, SD, SMD, LD, AC, HC, 常量。 OUT:VD, ID, QD, MD, SD, SMD, LD, AC。 數據類型:雙字 |
N:VB, IB, QB, MB, SB, SMB, LB, AC, 常量;數據類型:字節。 |
|||
功能 |
ROL:字節、字、雙字循環左移N位;ROR:字節、字、雙字循環右移N位。 |
說明:在STL指令中,若IN和OUT指定的存儲器不同,則須首先使用數據傳送指令MOV將IN中的數據送入OUT所指定的存儲單元。如:MOVB IN,OUT
SLB OUT,N