2009-02-04 6 views
2

J'ai écrit une réponse hier à ceci: What's the coolest hack you've seen or done? et j'essayais vraiment de se rappeler mon assemblage 6502, et je ne pouvais pas pour la vie de me rappeler comment branche si moins de ...Quelle est l'instruction de branchement correcte pour la branche si moins 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 

Quelqu'un sait ce que l'instruction est? BNE et BEQ sont égaux, BCC était pour carry, et un CMP est fondamentalement un SBC et qui affecte le report, mais je ne suis pas sûr que cela fonctionne dans ce cas.

Répondre

5

BCC est branche si moins de; BCS est une branche si supérieure ou égale. Il y a un joli tutoriel here.

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 
+0

Il vous manque un cas dans votre description. C'est-à-dire que "BCC" est "branche si strictement inférieure" et "BCS" est "branche si supérieure à * ou égale *". –

+0

Heh, belle prise - édité. –

+0

@NickWestgate, ma réponse est supprimée. Vous pourriez vouloir éditer la référence. –

0
+0

tricheur. :-) Je cherchais une discussion animée 6502 de la part des old schoolers comme moi avec de meilleurs souvenirs. :-) – stu

+0

Premier coup google n'a pas une réponse directe à la question –

+0

Il est pour tout le monde qui veut en savoir plus. Regardez ↑↑↑↑↑↑↑ si vous ne voulez pas penser. –

Questions connexes