5- 位右移【SFTR】Shift Right
SFTR指令是使指定位數(shù)長(zhǎng)度的軟元件每次向右移動(dòng)指定位數(shù)的指令。其執(zhí)行效果如下圖所示:
該指令對(duì)于以D開(kāi)始的n1位數(shù)據(jù)(移位寄存器的長(zhǎng)度),往右移動(dòng)n2位,移位后,原寄存器內(nèi)的低n2位數(shù)據(jù)溢出,高n2位數(shù)據(jù)由S開(kāi)始的n2位數(shù)據(jù)補(bǔ)充。
如果設(shè)定n2為K1,則每移動(dòng)一次只移動(dòng)一位。
6- 位左移【SFTL】Shift Left
SFTL指令是使指定位數(shù)長(zhǎng)度的軟元件每次向左移動(dòng)指定位數(shù)的指令。其執(zhí)行效果如下圖所示:
該指令對(duì)于以D開(kāi)始的n1位數(shù)據(jù)(移位寄存器的長(zhǎng)度),往左移動(dòng)n2位,移位后,原寄存器內(nèi)的高n2位數(shù)據(jù)溢出,低n2位數(shù)據(jù)由S開(kāi)始的n2位數(shù)據(jù)補(bǔ)充。
如果設(shè)定n2為K1,則每移動(dòng)一次只移動(dòng)一位。
7- 字右移【W(wǎng)SFR】Word Shift Right
WSFR指令是使n1個(gè)字長(zhǎng)的字軟元件向右移動(dòng)n2個(gè)字的指令。其執(zhí)行效果如下圖所示:
該指令對(duì)于以D開(kāi)始的n1個(gè)字軟元件往右移動(dòng)n2個(gè)字,移位后,原最右側(cè)n2個(gè)字軟元件的數(shù)據(jù)溢出,左側(cè)n2個(gè)字軟元件數(shù)據(jù)由S開(kāi)始的n2個(gè)字軟元件數(shù)據(jù)補(bǔ)充。
如果使用組合字元件作為傳送源和目標(biāo),需要指定相同的位數(shù);若傳送源和目標(biāo)軟元件重復(fù)則會(huì)發(fā)生運(yùn)算錯(cuò)誤。
8- 字左移【W(wǎng)SFL】Word Shift Left
WSFL指令是使n1個(gè)字長(zhǎng)的字軟元件向左移動(dòng)n2個(gè)字的指令。其執(zhí)行效果如下圖所示:
該指令對(duì)于以D開(kāi)始的n1個(gè)字軟元件往左移動(dòng)n2個(gè)字,移位后,原最左側(cè)n2個(gè)字軟元件的數(shù)據(jù)溢出,右側(cè)n2個(gè)字軟元件數(shù)據(jù)由S開(kāi)始的n2個(gè)字軟元件數(shù)據(jù)補(bǔ)充。
如果使用組合字元件作為傳送源和目標(biāo),需要指定相同的位數(shù);若傳送源和目標(biāo)軟元件重復(fù)則會(huì)發(fā)生運(yùn)算錯(cuò)誤。
9- 移位寫(xiě)入【SFWR】Shift Register Write
SFWR指令是先入先出控制用的數(shù)據(jù)寫(xiě)入指令。該指令將源數(shù)據(jù)寫(xiě)入一個(gè)儲(chǔ)存區(qū)域中,等待其他指令調(diào)用。其執(zhí)行效果如下圖所示:
該指令執(zhí)行時(shí),將源數(shù)據(jù)S的數(shù)值寫(xiě)入到目標(biāo)地址D+1中,同時(shí)D的數(shù)據(jù)加一;再次執(zhí)行時(shí)將源數(shù)據(jù)S的數(shù)值寫(xiě)入到目標(biāo)地址D+2中,同時(shí)D的數(shù)據(jù)繼續(xù)加一。也就是說(shuō)D內(nèi)的數(shù)據(jù)記錄了已經(jīng)儲(chǔ)存數(shù)據(jù)的個(gè)數(shù),每次執(zhí)行SFWR指令都會(huì)把S的數(shù)據(jù)填寫(xiě)到緊接下來(lái)的空區(qū)域中。
當(dāng)D內(nèi)記錄的個(gè)數(shù)超過(guò)n-1時(shí),不會(huì)繼續(xù)執(zhí)行數(shù)據(jù)寫(xiě)入。
10- 移位讀出【SFRD】Shift Register Read
SFRD指令是先入先出控制用的數(shù)據(jù)讀出指令。該指令將SFWR指令儲(chǔ)存好的數(shù)據(jù)一次讀出。其執(zhí)行效果如下圖所示:
該指令執(zhí)行時(shí),將源數(shù)據(jù)S+1的數(shù)值寫(xiě)入到目標(biāo)地址D中,同時(shí)S的數(shù)據(jù)減一;再次執(zhí)行時(shí)將源數(shù)據(jù)S+2的數(shù)值寫(xiě)入到目標(biāo)地址D中,同時(shí)S的數(shù)據(jù)繼續(xù)減一。也就是說(shuō)S內(nèi)的數(shù)據(jù)記錄了儲(chǔ)存數(shù)據(jù)的剩余個(gè)數(shù),當(dāng)S內(nèi)記錄的個(gè)數(shù)為0時(shí),不會(huì)繼續(xù)執(zhí)行數(shù)據(jù)讀出。
SFWR指令和SFRD指令配合接口實(shí)現(xiàn)先入先出的控制。所謂先入先出,可以想象產(chǎn)品儲(chǔ)存到倉(cāng)庫(kù)的庫(kù)位中,按照入庫(kù)的順序排列好,在取貨時(shí)根據(jù)入庫(kù)的先后順序優(yōu)先拿取先入的產(chǎn)品。如以下梯形圖實(shí)例: