Que é a instrução de desvio correto para ramo, se menos de
Pergunta
Eu escrevi uma resposta ontem para isso: O que é o mais legal hack que você tenha visto ou feito? e eu estava tentando realmente difícil lembrar o meu 6502 montagem, e eu não poderia para a vida de me lembrar de como ramo se menos de ...
: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
Alguém sabe o que a instrução é? BNE e BEQ são iguais, BCC foi para transportar, e uma CMP é basicamente um SBC e que afeta o transporte, mas não tenho certeza se ele funciona nesse caso.
Solução
BCC é ramo se menos de ; BCS é ramo, se maior ou igual. Há um bom tutorial aqui .
No entanto código de stu pode ser escrito de forma mais concisa, sem 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
Outras dicas
Primeiro Google bateu: http://en.wikibooks.org/wiki/6502_Assembly#Branch
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow