>> Électroniques Technologie >  >> téléphones >> Répondeurs

Écrire un programme pour multiplier deux nombres signés 8 bits à l'aide du microprocesseur 8085 ?

Programme d'assemblage 8085 pour multiplier deux nombres signés 8 bits

```

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.

Répondeurs