2017-09-16 4 views
0

Voici le langage d'assemblage pour multiplier deux nombres de 16 bits.Multiplication 16 bits à l'aide du microprocesseur 8085

LHLD 0002H ;DATA 1 
    SPHL 
    LHLD 0004H ;DATA 2 
    XCHG 
    LXI H,0000H 
    LXI B,0000H 
NEXT: 
    DAD SP 
    JNC LOOP 
    INX B 
LOOP: 
    DCX D 
    MOV A,E 
    ORA D 
    JNZ NEXT 
    SHLD 0006H ;LSB 
    MOV L,C 
    MOV H,B 
    SHLD 0008H ;MSB 
    HLT 

Je n'ai pas compris l'instruction ORA D. Pourquoi ORing est fait ici? S'il vous plaît quelqu'un peut-il l'expliquer. Je vous remercie!

Répondre

0

ORA D est utilisé comme instruction de test. Il est logique de OU l'accumulateur avec le registre D. Si le résultat est zéro, il quitte alors la boucle. Sinon, l'instruction JNZ qui suit suit la boucle.

Les registres D et E tiennent un compte à rebours pour le nombre de boucles. La logique générale est difficile à suivre: il y a plus de 30 ans que j'ai utilisé le 8085, donc j'ai besoin de look up most of the instructions pour démêler la logique. Mais j'espère que cela répond à votre question.