Instrucción RRC del microprocesador 8085: operación, banderas y aplicaciones

La instrucción RRC (Rotate Right through Carry) en el microprocesador Intel 8085 realiza una rotación a la derecha de 8 bits del Acumulador (registro A) a través de la bandera Carry.

Detalles de la operación

 Antes: A = [A7 A6 A5 A4 A3 A2 A1 A0] CY = [CY] Después: A = [CY A7 A6 A5 A4 A3 A2 A1] CY = [A0] 

Cada bit se desplaza una posición a la derecha:

  • Bit 0 (LSB) → Bandera Carry
  • Bandera Carry → Bit 7 (MSB)
  • Bits 7-1 → Bits 6-0

Codificación de la instrucción

 Opcode: 0FH Bytes: 1 T-States: 4 (Obtención de opcode 4T) Banderas afectadas: solo CY Banderas no afectadas: S, Z, AC, P 

Comportamiento de las banderas

  • Carry (CY): Se establece al valor original de A0. Permite encadenar rotaciones de varios bytes.
  • Signo (S), Cero (Z), Acarreo auxiliar (AC), Paridad (P): No afectadas — a diferencia de instrucciones aritméticas/lógicas.

Aplicaciones prácticas

1. Rotación a la derecha de varios bytes (16/24/32 bits)

 ; Rotar HL de 16 bits a la derecha a través de carry RRC ; Rotar L (byte bajo), LSB → CY MOV A, H RRC ; Rotar H (byte alto), CY (LSB viejo de L) → MSB de H MOV H, A ; Resultado: HL rotado a la derecha 1 bit 

2. Transmisión de datos serial (Bit-banging)

 ; Transmitir byte en A serialmente (LSB primero) MVI B, 8 ; 8 bits TX_LOOP: RRC ; Siguiente bit → CY JNC SEND_0 ; Establecer pin TX alto JMP NEXT SEND_0: ; Establecer pin TX bajo NEXT: DCR B JNZ TX_LOOP 

3. División eficiente por 2 (sin signo)

 ; RRC aproxima /2 pero mueve LSB a MSB ; Para división real /2: RAR (Rotate Right through Carry) con CY=0 ; RAR: A = [CY A7 A6 A5 A4 A3 A2 A1], CY = A0 ; Con CY=0: A = [0 A7 A6 A5 A4 A3 A2 A1] = A/2 

4. Algoritmos bitwise: CRC, sumas de verificación, cifrado

RRC/RAL (Rotate Left through Carry) son bloques de construcción para verificaciones de redundancia cíclica, cifrados simples y funciones hash.

Instrucciones relacionadas

InstrucciónOperaciónBanderas
RLCRotar izquierda (A7→CY, CY→A0)Solo CY
RALRotar izquierda a través de carry (CY→A0, A7→CY)Solo CY
RARRotar derecha a través de carry (CY→A7, A0→CY)Solo CY
RRCRotar derecha (A0→CY, CY→A7)Solo CY

Distinción clave: RRC vs RAR

  • RRC: Circular dentro de A + CY. El MSB recibe el CY viejo. Sin entrada externa.
  • RAR: CY actúa como entrada. El MSB recibe CY. Requiere configuración de CY. Use RAR para división limpia /2 con CY=0.

Resumen

RRC es una instrucción de 1 byte, 4 ciclos que rota el acumulador a la derecha a través de la bandera carry, afectando solo CY. Esencial para rotación de múltiples precisión, E/S serial y algoritmos a nivel de bit en el 8085.