帶進位循環移位指令RCR、RCL/1、 1、執行RCR、RCL指令時,各位的數據與進位位M8022一起(16位指令時一共17位)向右(或向左)循環移動n位。在循環中移出的位送入進位標志,后者又被送回到目標操作元件的另一端 RCR指令和RCL指令都是對字元件中的二進制位進行移位。從圖上可以看到,它們有連續執行型和脈沖執行型,可以用于16位,也可用于32位。其中RCR指令和RCL指令中的R、L和上文的含義一樣,一個表示右移,一個表示左移。
2、“帶進位”,是指在移位的同時,捎帶上進位標志位M8022。那又是在怎樣捎帶的呢?我們以RCR右移指令為例。 當驅動條件X0接通,執行指令RCR D0 K4,類似于ROR指令,但不一樣的是,用膠水把進位標志位M8022和D0粘起來,此時最右邊的4位,顯然不僅僅是屬于D0,還有1位是屬于M8022。 執行指令RCR D0 K4,進位標志位M8022的數首先被右移,再輪到把D0的16個二進制數依次向右移動。移出的4位二進制數(包括****被右移的進位)循環進入到D0的高位(左邊)。 顯然,移動4位后,M8022的值恰好為D0中b3的值。 3、帶進位左移指令RCL的執行我們直接以下圖展示。執行指令RCL D0 K4,同樣把進位標志位和D0粘連起來,此時M8022的值依然是首先被移動的那位,它也太可憐了吧。另外,執行完指令后,此時M8022的值為D0中b12的值。 和ROR指令和ROL指令一樣,在RCR指令、RCL指令中,當終址D是16位的組合位元件時,n=K4;當終址D是32位的組合位元件時,n=K8,否則指令不執行,且在用到移位指令時,****用脈沖執行型RCRP、RCLP。 以上兩種指令,都是基于字元件的二進制位移動,接下來我們繼續看位元件組合的位移動。


|