小编Pet*_*ter的帖子

读入内存和公司(6502)

对不起,如果问题似乎是"太基本".我是一名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

0
推荐指数
1
解决办法
561
查看次数

标签 统计

6502 ×1