gpt4 book ai didi

assembly - 从 6502 汇编器获取随机数

转载 作者:行者123 更新时间:2023-12-02 21:57:07 39 4
gpt4 key购买 nike

尝试使用 JSR $E09A 在我的 Commodore 64 (C64) 上生成一系列随机数,并从 $63 和 $64 中检索该数字。 (根据我见过的所有文档,当您使用 BASIC 中的 RND(0) 时,这是相同的例程。但无法让它迭代。以下命令将起作用,并在执行时在 $63 和 $64 中放置不同的数字本身。

. C000  A5 00    LDA $00
. C002 20 9A E0 JSR $E09A
. C005 00 BRK

现在,当我尝试使用以下代码迭代 10 次时,它永远不会返回。

. C000  A0 0A    LDY #$0A
. C002 A9 00 LDA #$00
. C004 20 9A E0 JSR $E09A
. C007 88 DEY
. C008 D0 F8 BNE $C002
. C00A 00 BRK

我是否遗漏了一些显而易见的东西,以至于我看不到它。我并不担心它有多“随机”。此时我只想要一系列随机数。

最佳答案

SID芯片实际上可以生成比BASIC伪随机数更加随机的数字。启动生成器:

LDA #$FF  ; maximum frequency value
STA $D40E ; voice 3 frequency low byte
STA $D40F ; voice 3 frequency high byte
LDA #$80 ; noise waveform, gate bit off
STA $D412 ; voice 3 control register
RTS

然后你可以随时获得随机数:

LDA $D41B ; get random value from 0-255

关于assembly - 从 6502 汇编器获取随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44937759/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com