Domanda

ho scritto una risposta di ieri a questa: Qual è la più cool hack hai visto o fatto? e stavo cercando davvero difficile ricordare il mio 6502 assemblaggio, e non ho potuto per la vita di me ricordare come diramazione se meno di ...

  :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

Qualcuno sa che cosa l'istruzione è? BNE e BEQ sono uguali, BCC è stato per il trasporto, e un CMP è fondamentalmente uno SBC e che colpisce il riporto, ma non sono sicuro se funziona in questo caso.

È stato utile?

Soluzione

BCC è ramo se inferiore a ; BCS è ramo se maggiore o uguale. C'è un bel tutorial qui .

Tuttavia il codice di Stu può essere scritto in modo più conciso senza 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

Altri suggerimenti

In primo luogo Google ha colpito: http://en.wikibooks.org/wiki/6502_Assembly#Branch

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top