对不起,如果问题似乎是"太基本".我是一名68K ASM编码器,但有一位朋友让我一瞥6502代码.我们有一个指向数据字符串的指针:
my_ptr ds 2
Run Code Online (Sandbox Code Playgroud)
使用以下代码设置此指针:
ldx sound_channel_busy
bne .abc_set_score1 ; at bottom of code
sta my_ptr ; fill the pointer
Run Code Online (Sandbox Code Playgroud)
读取数据完成
lda (my_ptr),y ; my_ptr + offset
Run Code Online (Sandbox Code Playgroud)
但正如我在6502 doc中看到的那样,y是一个字节.因此,使用超过255个字节的数据字符串是不可能的(我们想要读取10.000字节或更多的字符串.我建议我的朋友这样做:
1)将一个指针设置为"基础",将一个指针设置为我们在阅读时将要包含的临时指针
my_ptr ds 2
my_ptr_tmp ds 2
Run Code Online (Sandbox Code Playgroud)
2)用以下内容初始化:
ldx sound_channel_busy
bne .abc_set_score1
sta my_ptr
sta my_ptr_tmp ; Duplicate
Run Code Online (Sandbox Code Playgroud)
3)然后阅读使用:
lda (my_ptr_tmp) ; Read to acumulator
inc my_ptr_tmp ; One more on adress pointer
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为我的朋友是C开发者,我们没有调试器......不容易.在68K这似乎是合乎逻辑的,但在6502?
非常感谢你的帮助
6502 ×1