2017-09-16 4 views
0

以下は2つの16ビット数を掛けるためのアセンブリ言語です。8085マイクロプロセッサを使用した16ビット乗算

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 

私は命令ORA Dを理解しませんでした。なぜORingがここで完了したのですか?誰でもそれを説明できますか?ありがとうございました!

答えて

0

ORA Dがテスト命令として使用されます。アキュムレータとDレジスタの論理和です。結果がゼロの場合、ループを終了します。それ以外の場合は、それに続くJNZ命令がループに入ります。

DおよびEレジスタは、ループ数のカウントダウンを保持します。私が8085を使ってから30年以上経っているので、論理を解明するにはlook up most of the instructionsにする必要があります。しかし、うまくいけば、これはあなたの質問に答えます。

関連する問題