>> Tecnologia Eletrônica >  >> Áudio Residencial >> Amplificadores

Instrução RRC do Microprocessador 8085: Operação, Flags e Aplicações

A instrução RRC (Rotate Right through Carry) no microprocessador Intel 8085 realiza uma rotação de 8 bits para a direita do Acumulador (registrador A) através da flag de Carry.

Detalhes da Operação

 Antes: A = [A7 A6 A5 A4 A3 A2 A1 A0] CY = [CY] Depois: A = [CY A7 A6 A5 A4 A3 A2 A1] CY = [A0] 

Cada bit desloca uma posição para a direita:

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

Codificação da Instrução

 Opcode: 0FH Bytes: 1 T-States: 4 (Busca de opcode 4T) Flags Afetadas: Apenas CY Flags Inalteradas: S, Z, AC, P 

Comportamento das Flags

  • Carry (CY): Recebe o valor original de A0. Permite encadear rotações de múltiplos bytes.
  • Sign (S), Zero (Z), Auxiliary Carry (AC), Parity (P): Não afetadas — ao contrário de instruções aritméticas/lógicas.

Aplicações Práticas

1. Rotação à Direita de Múltiplos Bytes (16/24/32 bits)

 ; Rotaciona HL de 16 bits à direita através do carry RRC ; Rotaciona L (byte baixo), LSB → CY MOV A, H RRC ; Rotaciona H (byte alto), CY (antigo LSB de L) → MSB de H MOV H, A ; Resultado: HL rotacionado 1 bit à direita 

2. Transmissão Serial de Dados (Bit-Banging)

 ; Transmite byte em A serialmente (LSB primeiro) MVI B, 8 ; 8 bits TX_LOOP: RRC ; Próximo bit → CY JNC SEND_0 ; Define pino TX como alto JMP NEXT SEND_0: ; Define pino TX como baixo NEXT: DCR B JNZ TX_LOOP 

3. Divisão Eficiente por 2 (Sem Sinal)

 ; RRC aproxima /2 mas move LSB para MSB ; Para divisão real por 2: RAR (Rotate Right through Carry) com CY=0 ; RAR: A = [CY A7 A6 A5 A4 A3 A2 A1], CY = A0 ; Com CY=0: A = [0 A7 A6 A5 A4 A3 A2 A1] = A/2 

4. Algoritmos Bitwise: CRC, Checksums, Criptografia

RRC/RAL (Rotate Left through Carry) são blocos de construção para verificações de redundância cíclica, cifras simples e funções hash.

Instruções Relacionadas

InstruçãoOperaçãoFlags
RLCRotaciona Esquerda (A7→CY, CY→A0)Apenas CY
RALRotaciona Esquerda através do Carry (CY→A0, A7→CY)Apenas CY
RARRotaciona Direita através do Carry (CY→A7, A0→CY)Apenas CY
RRCRotaciona Direita (A0→CY, CY→A7)Apenas CY

Distinção Chave: RRC vs RAR

  • RRC: Circular dentro de A + CY. MSB recebe CY antigo. Sem entrada externa.
  • RAR: CY atua como entrada. MSB recebe CY. Requer configuração do CY. Use RAR para divisão limpa por 2 com CY=0.

Resumo

RRC é uma instrução de 1 byte, 4 ciclos, que rotaciona o acumulador à direita através da flag de carry, afetando apenas CY. Essencial para rotação de precisão múltipla, I/O serial e algoritmos em nível de bit no 8085.