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.

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top