【发布时间】:2015-07-23 19:58:16
【问题描述】:
我在这里玩 6502 汇编器:http://skilldrick.github.io/easy6502
我所做的只是在屏幕上的随机位置放置一个随机颜色像素:
LDY #$00 ; Clear Y
loop:
JSR genPos ; Put new position in memory
LDA $fe ; Get random number for color
STA ($10), Y ; Put pixel on screen
JMP loop
genPos:
STA $10 ; Store accumulator in low
LDA $fe ; Get new random number (WHY, oh why?)
AND #$03 ; Mask out low two bits (=numbers 0-3)
CLC ; Clear carry flag
ADC #2 ; Add 2 (= numbers 2-5)
STA $11 ; Store number in high
RTS
我正在尝试使用尽可能少的指令。我的问题是,如果我不在genPos 子例程中添加额外的LDA $fe,那么像素会以非常奇怪的模式绘制,如果我确实有额外的LDA,代码就会完美运行。我不明白为什么 - 谁能给我一个提示?
问候, 雅各布
【问题讨论】:
-
是的 - 2 个字节。最低价为 10 美元,最高价为 11 美元。我不明白的是,累加器中的随机数(用于上一个循环中的颜色)应该为屏幕地址制作一个很好的低字节。
-
@i486:@jriff 链接了他正在使用的 JavaScript 模拟器。它在
$fe有随机数,在$ff有键盘输入。