Assembly 用结果填充100个内存位置

Assembly 用结果填充100个内存位置,assembly,6502,Assembly,6502,我正试图用6502处理器上一次操作的结果填充100个内存位置 如何增加存储在寄存器中的内存位置并将结果存储在寄存器中 *=0300 dato1 = $0A dato2 = $0B res = $0C LDA #4 STA dato1 LDA #5 STA dato2 ADC dato1 STA res LDX #100 LDY #res LOOP INY ; i have to fill 0

我正试图用6502处理器上一次操作的结果填充100个内存位置

如何增加存储在寄存器中的内存位置并将结果存储在寄存器中

    *=0300

dato1 = $0A
dato2 = $0B
res = $0C
    LDA #4
    STA dato1
    LDA #5
    STA dato2
    ADC dato1
        STA res
    LDX #100
    LDY #res    
LOOP
    INY
    ; i have to fill 0C position and next 100 positions in this loop
    DEX
    BNE LOOP

6502有一个16位地址总线,但只有8位累加器/索引寄存器,因此指针不能装入单个寄存器。为了克服这一限制,6502程序员通常在零页内存中存储小的endian指针,然后使用零页间接索引操作来操作该地址偏移量处的值。这里是一个示例,通过在零页地址0x00处使用小端编码的值0x0200,然后使用y寄存器在该地址指向的100字节上迭代,用数字1,2,3,4,5,…,100填充地址0x0200到0x0263

LDA #$00
STA $00
LDA #$02
STA $01
LDY #$00
LDX #$01

loop:
CPY #$63
BEQ end
TXA
STA ($00),Y
INX
INY
JMP loop

end:
BRK

似乎可以使用
绝对,Y
寻址模式(请参阅您最喜欢的6502指令集参考和/或汇编程序手册)。或者,如果性能很重要,您可以切换寄存器并使用
Zeropage,X
寻址。谢谢,我终于做到了!与斯塔雷斯,Y