我正在通过 C64 仿真器学习 6502 micro 的组装。当前正在尝试将字符串输出到屏幕。这是我的代码:
processor 6502
org $1000
ldx #$00 ;using x register as column counter
print:
lda message,x;load a with x bit from message
sta $0400,x ;store this bit in row 0 col 0 address
inx ;x++
cpx #$05 ;is x >= 5?
bne print ;if not x >= 5, loop again
rts ;return from program
message dc "HELLO"
hexmsg dc $08,$05,$0c,$0c,$0f
因为我的编辑器(win 10 上的记事本++)使用类似 ascii 的字符代码,所以"HELLO"
inmessage
是位 48 45 4C 4C 4F。这会在屏幕的左上角给出以下输出:
通过查看此处的准将屏幕代码表,我猜这是正确的。
如果我将第 6 行更改为,lda hexmsg,x
那么我得到的正是我所追求的,单词HELLO
.
我对 DASM 汇编器还不是很熟悉,并且很难找到它的完整文档(如果存在的话)。我发现的大多数教程只有你声明message .byte "HELLO"
或类似的东西,它只是工作,因为他们使用的汇编程序自动将类似 ascii 的文本字符串自动转换为准将字符串,但 DASM 似乎没有这样做。
有谁知道我可以让 DASM 做到这一点的方法,或者推荐另一种方法来简单地将字符串输入到汇编程序中,而不是手动将我的字符串输入为一堆十六进制数据?