【问题标题】:Which is the correct branch instruction for branch if less than如果小于,哪个是正确的分支指令
【发布时间】:2009-02-04 22:59:17
【问题描述】:

我昨天写了一个答案: What's the coolest hack you've seen or done? 而且我非常努力地记住我的 6502 程序集,但我一生都无法记住如果小于...

  :1
  lda $C010
  cmp #$80
  bcc :1  ; branch if less than? I forget how to do that.
  lda $C000
  jsr $FDF0   ;output the accumulator value to the screen

有人知道指令是什么吗? BNE 和 BEQ 相等,BCC 用于进位,CMP 基本上是 SBC,会影响进位,但我不确定它是否适用于这种情况。

【问题讨论】:

    标签: assembly branch 6502


    【解决方案1】:

    如果小于,BCC 是分支; BCS 大于等于分支。有一个很好的教程here

    不过 stu 的代码可以在没有 CMP 的情况下写得更简洁:

    BIT $C010     ;clear the keyboard strobe
    :1
    LDA $C000     ;check for a keypress
    BPL :1        ;taken if no keypress
    JSR $FDFO     ;print the key
    

    【讨论】:

    • 您的描述中缺少一个案例。也就是说,BCC 是“严格小于的分支”,BCS 是“大于或等于的分支”。
    • @NickWestgate,我的回答已被删除。您可能需要编辑参考。
    【解决方案2】:

    【讨论】:

    • 骗子。 :-) 我正在寻找像我这样记忆力更好的老学生的一些生动的 6502 讨论。 :-)
    • 第一次谷歌点击没有直接回答问题
    • 它适用于任何想了解更多信息的人。不想多想就看↑↑↑↑↑↑↑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    相关资源
    最近更新 更多