0

6502 の追加で別の問題が発生しています....

n バイトの結果を生成するために 2 つの n バイト整数を追加しようとしています。このプロジェクトで必要なだけ 6502 チップを理解しているかどうか完全にはわからないので、現在のコードに関するフィードバックは非常に役に立ちます。

INX (x レジスタをインクリメント) と DEY (y レジスタをデクリメント) を使用することになっていることはわかっていますが、オペコードの配置がわかりません。

説明: 絶対インデックス アドレッシングを使用して 2 つの n バイト整数を加算します。

Adding two n-byte integers using absolute indexed addressing 
The addends start at memory locations $xxxx, $yyyy, answer is at $zzzz
Byte length of the integers is at $AAAA (¢—>256)

START = $0500
              CLC
              ____
loop          LDA      $0400, x 
              ADC      $0410, x
              STA      $0412, x
             ____
             BNE      loop
             BRK

LDA、ADC、および STA がループの外側にある (アセンブリで初めてループを使用する)

編集:

    Variables

A1 = $0600
B1 = $0700
B2 = $0800
Z1 = $0900

    [START] = $0500

            CLC             18  
            LDX             AE  
            LDY     A1      AC
loop:       LDA     B1, x   BD      
            ADC     B2, x   7D  
            STA     Z1, x   9D      
            INX     E8  
            DEY             88  
            BNE    loop     D0
4

1 に答える 1