在6502中添加两个16位整数以产生16位答案?

时间:2014-02-03 02:26:27

标签: assembly byte addition 6502

我需要添加两个16位整数,以使用绝对模式寻址产生16位应答。然而,我弄乱了内存地址,无法弄清楚原因。请告诉我纠正我的代码:

x1 = $0410
y2 = $0411
s1 = $0412

Start at $0500

CLC             18
LDA     x1      AD  10  04
ADC     y1      6D  11  04
STA     s1      8D  12  04
LDA     x1+1    AD  11  04
ADC     y2+1    6D  12  04
STA     s1+1    8D  13  04
BRK             00

1 个答案:

答案 0 :(得分:3)

由于16位整数占用两个字节,因此您的位置会重叠。你需要将它们分开两个字节:

x1 = $0410
y2 = $0412
s1 = $0414