2017-04-09 20 views
0

어셈블리가 처음인데 (MSP430 컨트롤러가 장착 된 학교에서이 어셈블리를 사용하고 있습니다) 두 가지 작업을 수행하려고합니다. 특정 위치에 16 진수 이동MSP430 어셈블러의 16 진수 사용

  1. : mov #FFFh, R5 다른 갖는 16 진수를 비교
  2. (다섯 번째 레지스터로 이동) cmp #FFFh, #45
  mov.b #0, R4 ; indice 
      mov.b #0, R5 ; contatore 

      bis.b #00000001b, P1DIR ; led rosso 
      bis.b #10000000b, P4DIR ; led verde 

main_loop: cmp #19, R5 
      jz end 
      cmp #FFFFh, 2C00h(R4) 
      jnz nope 
      jmp yep 

nope:  inc.b R4 
      jmp main_loop 

yep:  inc.b R4 
      inc.b R5 
      jmp main_loop 

end:  cmp #5, R5 
      jge red_led 
      jmp green_led 

red_led: bis.b #00000001b, P1OUT 
green_led: bis.b #10000000b, P4OUT 

컴파일러 로그 (우리는 CCS, CodeComposer)를 사용하고 있습니다 :

"../main.asm", 오류! EOF에서 : [E0300] 다음 기호는 정의되지 않은됩니다
가 FFFFh

나는이 문제를 어떻게 해결할 수 ?

+0

우리에게 실제 소스 코드와 당신이 가지고있는 오류 메시지를 모두 보여주십시오 : 16 진수가 문자로 시작할 때

그래서, 당신은 제로 추가해야합니다. 이 두 가지가 없으면, 당신을 도울 수 없습니다. – fuz

+0

@fuz가 소스로 편집 됨 –

+0

마지막 명령 이후에 어떤 일이 발생합니까? 이 프로그램이 전체 프로그램입니까? –

답변

2

숫자 (0 ... 9)로 시작하는 단어는 숫자로 해석됩니다.
문자 (A ... Z)로 시작하는 단어는 이름 (레지스터 또는 변수 또는 레이블)으로 해석됩니다.

 cmp #0FFFFh, 2C00h(R4) 
+0

정말 고마워요! –