ROTATE是8085微处理器的逻辑操作。这是一个1字节的指令。该指令在操作码后不需要任何操作数。它操作累加器的内容,结果也存储在累加器中。 Rotate指令用于旋转累加器的位。
ROTATE指令的类型:
ROTATE指令分为4类:向左旋转累加器(RLC),向左旋转累加器(RAL),向右旋转累加器(RRC),向右旋转累加器(RAR)。在这四个指令中;两个用于向左旋转,两个用于向右旋转。以下各节将简要说明所有这些内容:
- 向左旋转蓄能器(RLC)–
在该指令中,每个位都移到相邻的左位置。 D7位变为D0。进位标志CY根据位D7进行修改。例如:-A = D7 D6 D5 D4 D3 D2 D2 D0 //before the instruction A = 10101010; CY=0 //after 1st RLC A = 01010101; CY=1 //after 2nd RLC A = 10101010; CY=0
- 通过进位将累加器向左旋转(RAL)–
在该指令中,每个位都移到相邻的左位置。位D7变为进位位,并且进位位移入D0。进位标志CY根据位D7进行修改。例如:A = D7 D6 D5 D4 D3 D2 D2 D0 //before the instruction A = 10101010; CY=0 //after 1st RAL A = 01010100; CY=1 //after 2nd RAL A = 10101001; CY=0
- 向右旋转蓄能器(RRC)–
在该指令中,每个位都移到相邻的右位置。 D7位变为D0。根据位D0修改进位标志CY。例如:A = D7 D6 D5 D4 D3 D2 D2 D0 //before the instruction A = 10000001; CY=0 //after 1st RRC A = 11000000; CY=1 //after 2nd RRC A = 01100000; CY=0
- 通过进位(RAR)右旋转蓄能器–
在该指令中,每个位都移到相邻的右位置。 D0位变为进位位,进位位移入D7。根据位D0修改进位标志CY。例如:A = D7 D6 D5 D4 D3 D2 D2 D0 //before the instruction A = 10000001; CY=0 //after 1st RAR A = 01000000; CY=1 //after 2nd RAR A = 10100000; CY=0
ROTATE指令的应用:
ROTATE指令主要用于算术乘法和除法运算以及串行数据传输。例如:
If A is 0000 1000 = 08H
1. By rotating 08H right : A = 0000 0100 = 04H
This is equivalent to dividing by 2.
2. By rotating 08H left : A = 0001 0000 = 10H
This is equivalent to multiplying by 2.
但是,当逻辑1从D7左旋转到D0或反之亦然时,这些过程无效。例如,如果向左旋转80H,则变为01H。