2014-03-06 2 views
0

아래 코드에서 문자열을 가져 와서 소문자를 대문자로 변경하는 복사본을 만듭니다. 어떤 이유로 코드를 실행할 때 첫 번째 단어 인 "This"만 통과 한 다음 중지됩니다.Assembly : Branching

'공간'이 'null'이 아니며 분기를 계속해야한다고 생각했습니다. 당신이 space을 비교하지 않기 때문에

 ORG $5000 
data: dc.b "This is a Test String", 0 
     ORG $4000 
     ldx #data 
     ldy #$5020 
loop: ldaa 1,X+ 
     anda #$5F 
     staa 1,Y+ 
     bne loop 
     bgnd 
+0

$ 5F에 도착한 곳에서 설명하십시오. –

+0

바이너리에서 $ 5F는 # 1011111이므로 AND를하면 소문자 인 경우 비트를 지우므로 대문자로 전환합니다. – aks

+0

* space *는 소문자입니까? –

답변

0

루프가 종료되지만 spacenull입니다 #$5F와 AND 연산.

+0

감사합니다. 정말 감사. – aks