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