Écrire un programme pour multiplier deux nombres signés 8 bits à l'aide du microprocesseur 8085 ?
```
BIO 100H
LXI H, 2000H; Initialiser la paire HL pour stocker le produit
MOUVEMENT A, M ; Chargez le premier numéro dans l'accumulateur
CFF B; Soustrayez le deuxième nombre de l'accumulateur (avec emprunt)
MOUVEMENT M, A ; Stocker le résultat en mémoire
DCX H; Décrémenter la paire HL
MOUVEMENT A, M ; Chargez le deuxième numéro dans l'accumulateur
AJOUTER B ; Ajouter le premier numéro à l'accumulateur (avec report)
MOUVEMENT M, A ; Stocker le résultat en mémoire
INX H; Incrémenter la paire HL
BOUCLE JMP ; Répétez la boucle
BOUCLE :CMP H, 0; Comparez la paire HL à zéro
BOUCLE JNZ ; Si ce n'est pas zéro, revenez à la boucle
HLT; Arrêtez le processeur
```
Explication
Ce programme utilise les instructions SBB (soustraction avec emprunt) et ADD (ajout avec report) du microprocesseur 8085 pour multiplier deux nombres signés de 8 bits.
Le programme initialise d'abord la paire HL pour stocker le produit des deux nombres. Ensuite, il charge le premier nombre dans l’accumulateur et en soustrait le deuxième nombre (avec emprunt). Ceci définit l'indicateur de report si le premier nombre est inférieur au deuxième nombre et l'efface dans le cas contraire.
Le programme stocke ensuite le résultat en mémoire et décrémente la paire HL. Ensuite, il charge le deuxième nombre dans l'accumulateur et y ajoute le premier nombre (avec report). Ceci définit l'indicateur de report si la somme des deux nombres est supérieure à 255 et l'efface dans le cas contraire.
Le programme stocke ensuite le résultat en mémoire et incrémente la paire HL. Le programme revient ensuite à l'étiquette LOOP et répète la boucle jusqu'à ce que la paire HL atteigne zéro. Enfin, le programme arrête le processeur.
Exemple
Si le premier nombre est 10 et le deuxième nombre est 5, le programme stockera le produit des deux nombres, soit 50, dans l'emplacement mémoire 2000H.