📜  8085中的旋转指令

📅  最后修改于: 2021-06-28 14:34:46             🧑  作者: Mango

ROTATE是8085微处理器的逻辑操作。这是一个1字节的指令。该指令在操作码后不需要任何操作数。它操作累加器的内容,结果也存储在累加器中。 Rotate指令用于旋转累加器的位。

ROTATE指令的类型:
ROTATE指令分为4类:向左旋转累加器(RLC),向左旋转累加器(RAL),向右旋转累加器(RRC),向右旋转累加器(RAR)。在这四个指令中;两个用于向左旋转,两个用于向右旋转。以下各节将简要说明所有这些内容:

  1. 向左旋转蓄能器(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 
  2. 通过进位将累加器向左旋转(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 
  3. 向右旋转蓄能器(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 
  4. 通过进位(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。