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