我正在尝试以编程方式将字符写入内存,以便我可以在屏幕上显示它.我如何获取一个值(比如65)并将其写入内存并使用Z80程序集为Gameboy?
根据我的阅读,这只是将寄存器加载到内存地址的情况:
ld [hl], b
我的代码似乎与将字符写入内存分开.我得到的输出是"BBBBBBBB".
周围的代码如下.
printnum: ld a, 0 ; cursor position ld b, 65 ; ASCII 'A' ld hl, Number ; set pointer to address of Number overwrite: ld [hl], b ; set dereference to 'A' ??? inc hl ; increment pointer inc a ; increment acc cp 7 ; are we done? jp z, overwrite ; continue if not ; V output to screen V ld hl, Number ld de, _SCRN0+3+(SCRN_VY_B*7) ; ld bc, NumberEnd-Number call mem_CopyVRAM ret ; done Number: DB "BBBBBBBB" ; placeholder NumberEnd:
Ville Krumli.. 8
Gameboy代码在ROM中执行:只读内存.因此,覆盖数字的循环无效(尝试写入ROM只保留现有值).如果你想要一个缓冲区写入,你需要确保它在RAM中.
Gameboy代码在ROM中执行:只读内存.因此,覆盖数字的循环无效(尝试写入ROM只保留现有值).如果你想要一个缓冲区写入,你需要确保它在RAM中.