首先:对不起,如果这是一个骗局!我进行了一些搜索,但没有找到可以令人满意地解释这一点的资源。
n00bish问题在这里!
我试图了解.byte
指令的作用。不同的来源说不同的东西,其要点是:
.db、DB、.byte 等列出了您指定的确切字节,作为数据而不是指令 ( http://forum.6502.org/viewtopic.php?f=2&t=2374 )
cc65 手册给出了类似的模糊:
.byte:定义字节大小的数据。后面必须跟一系列(字节范围)表达式或字符串。
例子:
.byte "Hello " .byt "world", $0D, $00
我不知道那是什么意思。我认为所有与定义数据相关的操作都是读写内存地址的变体。所以像这样的东西(来自NES开发的tut)
; Number of PRG-ROM blocks
.byte $01
; Number of CHR-ROM blocks
.byte $01
; ROM control bytes: Horizontal mirroring, no SRAM
; or trainer, Mapper #0
.byte $00, $00
它到底在做什么?这一切都可以用操作码来解释,还是在做一些更有趣的事情?对我来说,它看起来可能是从零页开始写入顺序数据,像这样??:
LDA #$01
STA $00
LDA #$01
STA $01
LDA #$00
STA $02
LDA #$00
STA $03
我离这儿很远吗?我一直在阅读Leo Scanlon 的 6502 Software Design,但我没有看到对那个(或任何)指令的引用。我正在学习 6502 以进行 NES 开发,所有示例代码都充满了.byte
,.ascii
和其他几个指令。在尝试浏览用户贡献的 NES 教程世界之前,我真的很想尝试从像 Scanlon 书这样的学术文本中获得 6502 的坚实基础,但这成为我理解 NES 6502 的障碍。