8085微处理器中的RAL指令
在8085指令集中,还有一个助记符**RAL**,代表旋转累加器左移,并且在旋转过程中涉及Cy标志。它将累加器的内容左移1位。下图描述了指令的执行逻辑。
从图中我们可以看到,由于左移,从最高位出来的位将被复制到Cy标志位。而之前的Cy位将被移到累加器的最低位。因此,它是累加器和Cy内容的9位旋转。只有Cy标志受此指令执行的影响。
助记符,操作数 | 操作码(十六进制) | 字节 |
---|---|---|
RAL | 17 | 1 |
该指令可用于多种用途。
查找累加器的最高位,执行左移。
执行乘以2的操作。我们知道,如果我们将一个数字乘以2n,则该数字将进行n位左移。
由于旋转过程中会产生一个空位,因此为了在这个最低位空位放入一个新的位,我们也可以使用这个助记符。
让我们考虑以下示例以便更好地理解。
示例1
35H ---> 0011 0101 0 0110 1010 ---> 6AH (Prev. Cy bit as the Last bit)
之前 | 之后 | |
---|---|---|
(A) | 35H | 6AH |
(Cy) | 0 | 0 |
地址 | 十六进制代码 | 助记符 | 注释 |
---|---|---|---|
2003 | 17 | RAL | 旋转累加器左移 |
注意,与之前的值相比,累加器的值已加倍。
示例2
35H ---> 0011 0101 0 0110 1011 ---> 6BH(Prev. Cy bit as the Last bit)
之前 | 之后 | |
---|---|---|
(A) | 35H | 6BH |
(Cy) | 1 | 0 |
地址 | 十六进制代码 | 助记符 | 注释 |
---|---|---|---|
2003 | 17 | RAL | 旋转累加器左移 |
这里,与累加器的初始内容相比,当前累加器的值没有加倍。因为在这种情况下,累加器的最高位在旋转前是1。
针对此指令**RAL**执行的时序图如下:
**总结** - 因此,此指令**RAL**需要1个字节、1个机器周期(操作码提取)和4个T状态来执行,如时序图所示。
广告