Какая правильная инструкция перехода для перехода, если меньше

StackOverflow https://stackoverflow.com/questions/513785

  •  21-08-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Другие советы

Первый хит в Google: http://en.wikibooks.org/wiki/6502_Assembly#Branch

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top