打印

宏定义MACRO请教

[复制链接]
2181|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
19840312|  楼主 | 2009-1-29 22:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MACRO
  $HandlerLabel HANDLER $HandleLabel
  $HandlerLabel                        
    sub    sp,sp,#4            ;decrement sp(to store jump address)
    stmfd    sp!,{r0}          ;PUSH the work register to stack(lr do not push because it return to original address)
    ldr     r0,=$HandleLabel;load the address of HandleXXX to r0
    ldr     r0,[r0]         ;load the contents(service routine start address) of HandleXXX
    str     r0,[sp,#4]      ;store the contents(ISR) of HandleXXX to stack
    ldmfd   sp!,{r0,pc}     ;POP the work register and pc(jump to ISR)
    MEND

;=============================================================
这是44b0上的启动代码
/MACRO……MEND
功能:标志一下宏的定义。
格式:MACRO
      Macro_prototype
      MEND
宏表达式的格式如下:
{$label}    macroname     {$ parameter{,parameter2}…}
其中:
$ label    参数,在宏使用时,被给定的符号替代。
Macroname    宏的名称,并不一定以一条指令或者符号名开始。
$parameter     在宏使用时,被替代的参数,格式为:$parameter=“default value”
    在宏体中,参数如:$parameter和变量一样使用,在被宏引用时,被赋于新值,参数必须用“$”符号加于区别。$label在宏定义内部符号时很有用,可以看作宏的参数。使用“|”符号作为使用一个参数缺省值的变量,如果使用的是一个空格符串,将省去该变量。在使用内部标志的宏定义中,将内部标志定义为带后缀的标志,将会很有用。如果在扩展中空间不够,可以作为参数和后继文字之间或者参数之间使用圆点隔开,但在文本和后继参数之间不能使用圆点。宏可以定义局部变量的范围。宏还可以嵌套使用。

如果我赋值 UDF_INS_HANDLER    HANDLER    UdfInsVector
问题是:
  上面调用UDF_INS_HANDLER时UdfInsVector为参数($HandleLabel),
  MACRO
  $HandlerLabel HANDLER $HandleLabel
  $HandlerLabel 这儿这个$HandlerLabel是干什么使用的?

  

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

137

帖子

0

粉丝