新手,ARM汇编宏定义问题。。

iorihu   2008-10-27 20:46 楼主

  1.         GBLS String
  2.         GBLL Logic
  3.         GBLA Var
  4. String SETS "test"
  5. Logic SETL {TRUE}
  6. Var SETA 0xff

  7. ;-----------------------------------------------

  8.         MACRO;宏定义开始
  9. $HandlerLabe1        HANDLER $p1,$p2 ;$HandlerLabe1为标号
  10.                                                           ;HANDLER为宏名,$p1,$p2为参数

  11.         LCLA Var;在宏里定义一个局部的数字变量,不影响全局变量
  12.         LCLS String                                                          
  13.         LCLL Logic
  14. Var SETA 0x11
  15. Login SETL {FALSE}
  16. String SETS "not test"

  17. $HandlerLabe1
  18.         MOV R1,#Var; 标号$HandlerLabe1,这里的Var为宏里的局部变量
  19.         INFO 0,"String1"
  20.         MOV R3,#p1;
  21.         MOV R4,#p2
  22.         MEND;宏定义结束

  23. ;------------------------------------------------

  24.         AREA apple_6,CODE,READONLY
  25.         ENTRY
  26. START

  27. HandlerLabe1        HANDLER R1,R2
  28.         MOV R3,#0
  29.         MOV R4,#1
  30. END1
  31.         B END1
  32.         END

显示倒数第6行错误:
Error   :A1125E: Unknown or wrong type of global/local symbol.

回复评论 (3)

将宏命令中局部变量的定义与赋值去掉后, 编译通过。
点赞  2009-3-30 09:48
  Login SETL {FALSE}
单词写错了,应该是 Login,错误提示下面那行才是错误的原因,我也是因为没看见,所以一直迷惑
点赞  2009-6-3 07:58
还写错了,不好意思,应该是Logic
点赞  2009-6-3 07:59
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复