在 MSP430 汇编器中使用十六进制数

Using hex numbers in MSP430 assembler

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

  1. 将一个十六进制数移动到某个位置:mov #FFFh, R5(将其移动到第五个寄存器)
  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", ERROR! at EOF: [E0300] The following symbols are undefined:
FFFFh

我该如何解决这个问题?

以数字开头的单词 (09) 被解释为数字。
以字母 (AZ) 开头的单词被解释为名称(寄存器或变量或标签)。

所以当十六进制数以字母开头时,必须加一个零:

        cmp #0FFFFh, 2C00h(R4)