Какая правильная инструкция ветвления для ветвления, если меньше - PullRequest
2 голосов
/ 05 февраля 2009

Я вчера написал ответ на это: Какой самый крутой хак вы когда-либо видели или сделали? и я очень старался запомнить свою сборку 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, и это влияет на перенос, но я не уверен, работает ли он в этом случае.

Ответы [ 2 ]

5 голосов
/ 22 сентября 2010

BCC является филиалом, если меньше ; BCS - это ветвь, если она больше или равна. Здесь есть хороший учебник .

Однако код 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
0 голосов
/ 05 февраля 2009

Первое попадание Google: http://en.wikibooks.org/wiki/6502_Assembly#Branch

...