더 적은 경우 지점에 대한 올바른 분기 지침은
문제
나는 어제 이것에 대한 답을 썼다 :당신이 보거나 한 가장 멋진 핵은 무엇입니까?그리고 나는 6502 회의를 기억하기 위해 정말로 열심히 노력했고, 나는 내 인생을 위해 인생을 기억할 수 없었습니다.
: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
지시가 무엇인지 아는 사람 있나요? BNE와 BEQ는 동일하고 BCC는 캐리를위한 것이었고 CMP는 기본적으로 SBC이며 캐리에 영향을 미치지 만 해당 경우에 작동하는지 확실하지 않습니다.
해결책
BCC는 더 적은 경우 지점입니다; BCS는 더 크거나 같으면 지점입니다. 좋은 튜토리얼이 있습니다 여기.
그러나 STU의 코드는 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
다른 팁
첫 번째 구글 히트 : http://en.wikibooks.org/wiki/6502_assembly#branch
제휴하지 않습니다 StackOverflow