在MSP430汇编程序

时间:2017-04-09 10:30:48

标签: assembly hex msp430

我是装配新手(我们在学校使用MSP430控制器)并且我尝试做两件事。

  1. 将十六进制数移动到某个位置:mov #FFFh, R5(将其移动到第五个寄存器中)
  2. 将十六进制数与另一数字进行比较:cmp #FFFh, #45
  3.             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时

    我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

以数字(0 ... 9)开头的单词被解释为数字 以字母(A ... Z)开头的单词被解释为名称(寄存器或变量或标签)。

因此,当十六进制数字以字母开头时,您必须添加零:

        cmp #0FFFFh, 2C00h(R4)