8085 微处理器中的 RLC 指令
在 8085 指令集中,有一个助记符 **RLC** 代表“循环左移累加器”。它将累加器的内容向左旋转 1 位。下图详细显示了此操作。
在此图中,它描述了累加器的最高有效位将移出,向左旋转将在最低有效位处创建一个空位,并且此移出的位将被复制到空位以及标志寄存器中的 Cy 位。因此,Cy 标志获得从 MS 位位置移出的位的副本。请注意,Cy 标志不参与旋转,它只是累加器内容的 8 位旋转。只有 Cy 标志受此指令执行的影响。
助记符,操作数 | 操作码(十六进制) | 字节 |
---|---|---|
RLC | 07 | 1 |
此指令可用于以下不同的案例研究。
检查数字是正数还是负数。因为累加器内容的最高有效位保存符号位。
执行乘以 2 的操作,将累加器向左旋转。它对无符号数有效,只要累加器的 MS 位在旋转前为 0。众所周知,乘以 2n 会导致数字向左移 n 位。
让我们讨论一些关于此助记符用法的示例。
示例 1
35H ---> 0011 0101 0 0110 1010 ---> 6AH
之前 | 之后 | |
---|---|---|
(A) |
35H | 6AH |
(Cy) |
任何值 | 0 |
地址 | 十六进制代码 | 助记符 | 注释 |
---|---|---|---|
2002 | 07 | RLC | 循环左移累加器 |
由于我们进行了 1 位左移并且 MSB 为 0,因此累加器内容已加倍。
示例 2
95H ---> 1001 0101 1 0010 1011 ---> 2BH
之前 | 之后 | |
---|---|---|
(A) |
95H | 2BH |
(Cy) |
任何值 | 1 |
在此示例中,累加器值没有加倍,因为累加器的最高有效位在旋转前为 1。
地址 | 十六进制代码 | 助记符 | 注释 |
---|---|---|---|
2002 | 07 | RLC | 循环左移累加器 |
针对此指令 **RLC** 执行的时序图如下所示:
**总结** - 因此,此指令 **RLC** 需要 1 个字节、1 个机器周期(操作码获取)和 4 个 T 状态才能执行,如时序图所示。
广告