Quelle est l'instruction de branchement correct pour la branche si moins
Question
J'ai écrit une réponse hier à ceci: Quel est le plus cool pirater que vous avez vu ou fait? et je voulais vraiment difficile de se souvenir de mon assemblée 6502, et je ne pouvais pas pour la vie de me rappeler comment ramifier si moins ...
: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
Quelqu'un sait ce que l'instruction est? BNE et BEQ sont égaux, BCC a été pour transporter et une CMP est essentiellement un SBC et qui affecte le transport, mais je ne sais pas si cela fonctionne dans ce cas.
La solution
BCC est branche si moins de ; BCS est branche si elle est supérieure ou égale. Il y a un joli tutoriel .
Cependant le code de STU peut être écrit de manière plus concise, sans 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
Autres conseils
D'abord Google a frappé: http://en.wikibooks.org/wiki/6502_Assembly#Branch