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