Instruction RRC du Microprocesseur 8085 : Opération, Drapeaux et Applications
L'instruction RRC (Rotate Right through Carry) du microprocesseur Intel 8085 effectue une rotation à droite de 8 bits de l'accumulateur (registre A) à travers le drapeau de retenue (Carry).
Détails de l'Opération
Avant : A = [A7 A6 A5 A4 A3 A2 A1 A0] CY = [CY] Après : A = [CY A7 A6 A5 A4 A3 A2 A1] CY = [A0]
Chaque bit décale d'une position vers la droite :
- Bit 0 (LSB) → Drapeau Carry
- Drapeau Carry → Bit 7 (MSB)
- Bits 7-1 → Bits 6-0
Encodage de l'Instruction
Opcode : 0FH Octets : 1 T-States : 4 (Récupération opcode 4T) Drapeaux Affectés : CY seulement Drapeaux Non-Affectés : S, Z, AC, P
Comportement des Drapeaux
- Retenue (CY) : Prend la valeur originale de A0. Permet chaînage rotations multi-octets.
- Signe (S), Zéro (Z), Retenue Auxiliaire (AC), Parité (P) : Non affectés — contrairement aux instructions arithmétiques/logiques.
Applications Pratiques
1. Rotation Droite Multi-Octets (16/24/32 bits)
; Rotation droite 16-bit HL via retenue RRC ; Rotation L (octet poids faible), LSB → CY MOV A, H RRC ; Rotation H (octet poids fort), CY (ancien LSB L) → MSB de H MOV H, A ; Résultat : HL roté droite 1 bit
2. Transmission Série Données (Bit-Banging)
; Transmettre octet dans A en série (LSB first) MVI B, 8 ; 8 bits TX_BOUCLE: RRC ; Prochain bit → CY JNC ENVOI_0 ; Mettre broche TX haut JMP SUIVANT ENVOI_0: ; Mettre broche TX bas SUIVANT: DCR B JNZ TX_BOUCLE
3. Division Efficace par 2 (Non-signé)
; RRC approxime /2 mais déplace LSB vers MSB ; Pour vrai /2 : RAR (Rotate Right through Carry) avec CY=0 ; RAR : A = [CY A7 A6 A5 A4 A3 A2 A1], CY = A0 ; Avec CY=0 : A = [0 A7 A6 A5 A4 A3 A2 A1] = A/2
4. Algorithmes Bit à Bit : CRC, Somme de Contrôle, Chiffrement
RRC/RAL (Rotate Left through Carry) sont blocs de base pour contrôles redondance cyclique, chiffrements simples, fonctions de hachage.
Instructions Connexes
| Instruction | Opération | Drapeaux |
|---|---|---|
| RLC | Rotation Gauche (A7→CY, CY→A0) | CY seulement |
| RAL | Rotation Gauche via Retenue (CY→A0, A7→CY) | CY seulement |
| RAR | Rotation Droite via Retenue (CY→A7, A0→CY) | CY seulement |
| RRC | Rotation Droite (A0→CY, CY→A7) | CY seulement |
Distinction Clé : RRC vs RAR
- RRC : Circulaire dans A + CY. MSB reçoit ancien CY. Pas d'entrée externe.
- RAR : CY agit comme entrée. MSB reçoit CY. Nécessite configuration CY. Utilisez RAR pour /2 propre avec CY=0.
Résumé
RRC est une instruction 1 octet, 4 cycles qui rotate l'accumulateur droite via le drapeau retenue, n'affectant que CY. Essentielle pour rotation multi-précision, E/S série, et algorithmes bit-level sur 8085.
