如果小于,则分支的正确分支指令

stu*_*stu 2 assembly branch 6502

我昨天写了一个答案: 你见过或做过的最酷的黑客是什么? 而且我正在努力记住我的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
Run Code Online (Sandbox Code Playgroud)

有人知道指令是什么吗?BNE和BEQ是平等的,BCC用于携带,而CMP基本上是一个SBC并影响进位,但我不确定它是否适用于那种情况.

Nic*_*ate 5

BCC是分支,如果小于 ; 如果大于或等于BCS,则BCS为分支.有一个很好的教程在这里.

然而,没有CMP,stu的代码可以更简洁地编写:

BIT $C010     ;clear the keyboard strobe
:1
LDA $C000     ;check for a keypress
BPL :1        ;taken if no keypress
JSR $FDFO     ;print the key
Run Code Online (Sandbox Code Playgroud)