带进位循环移位指令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。 以上两种指令,都是基于字元件的二进制位移动,接下来我们继续看位元件组合的位移动。
|