Pas à pas assembleur 8085 : LNIH 2050, MOV C,M, INX H, MOV A,X, XRA C, STA 2055, HLT
Analyse du programme
Cette courte routine 8085 charge deux octets consécutifs depuis la mémoire, les XOR, stocke le résultat, et s'arrête. Note : LNIH et MOV A,X sont des mnémoniques non standards ; équivalents supposés : LXI H,2050H et MOV A,M (après INX H).
Décomposition instruction par instruction
| Adresse | Instruction | Opération | Effet |
|---|---|---|---|
| — | LXI H, 2050H | Charge paire H-L avec 2050H | HL ← 2050H (adresse source) |
| — | MOV C, M | Déplace (HL) → C | C ← octet à 2050H |
| — | INX H | Incrémente H-L | HL ← 2051H (octet suivant) |
| — | MOV A, M | Déplace (HL) → A | A ← octet à 2051H |
| — | XRA C | OU exclusif A avec C | A ← A ⊕ C ; drapeaux mis à jour |
| — | STA 2055H | Stocke A → 2055H | Mémoire[2055H] ← A (résultat) |
| — | HLT | Arrête CPU | Exécution stoppée |
Fonction globale
Résultat = Mem[2050H] XOR Mem[2051H], stocké à 2055H.
Cas d'usage pratiques
- Calcul simple de checksum / parité sur deux octets.
- Comparaison bit à bit : résultat = 0 si octets identiques ; non-zéro montre bits différents.
- Obfuscation / étape de chiffrement basique (XOR avec clé).
Drapeaux affectés par XRA
- S, Z, P : Reflètent le résultat (Zero si octets égaux).
- CY, AC : Mis à 0 (toujours 0 pour opérations logiques).
Ce snippet démontre les opérations fondamentales du 8085 : adressage mémoire via HL, logique registre-à-registre, et stockage mémoire direct.
