ROTATE是 8085 微处理器的逻辑运算。它是一个 1 字节的指令。该指令在操作码后不需要任何操作数。它操作累加器的内容,结果也存储在累加器中。 Rotate 指令用于旋转累加器的位。
ROTATE指令的类型:
ROTATE 指令有 4 类:左循环累加器 (RLC)、左循环累加器 (RAL)、循环右累加器 (RRC)、右循环累加器 (RAR)。在这四个指令中;两个用于向左旋转,两个用于向右旋转。所有这些都在以下部分中简要说明:
- 向左旋转累加器 (RLC) –
在这条指令中,每一位都被移到相邻的左边位置。位 D7 变为 D0。根据位 D7 修改进位标志 CY。例如:-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。根据位 D7 修改进位标志 CY。例如: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。