0

2 つの 24 ビット数値 M と N を乗算し、積を p のメモリ ロケーション に格納しようとしています$1100

md 1100 を実行したときの予想される出力は次のようになるはず $07336BF94116ですが、取得しています 07 1A 48 58 - 41 16 8D 0C - 92 C2 82 85 - 48 B9 79 03

私のプログラムの何が問題なのかわかりませんが、助けていただければ幸いです。

org $1000
M   dc.b    $12,$34,$56 ; define the value of M
N   dc.b    $65,$43,$21 ; define the value of N
    org $1100 ; define the memory addresses for P
P   ds.b    6 ; the product should be $07336BF94116 when md 1100
    org $2000 ;    
    ldy M+1
    ldd N+1
    emul    
    std P+4
    ldaa    M
    ldab    N
    mul 
    std P
    ldab    M
    ldaa    #0
    ldy N+1
    addd    P+2
    xgdy    
    adcb    P+1
    adca    P
    ldab    N
    ldaa    #0
    ldy M+1
    addd    P+2
    xgdy    
    adcb    P+1
    adca    P   
    swi 
    end

このコードをdragon12-plus2にアップロードしています。

4

0 に答える 0