Board logo

标题: 宏定义MACRO请教 [打印本页]

作者: encaon    时间: 2009-2-1 14:10     标题: 宏定义MACRO请教

MACRO
$HandlerLabel HANDLER $HandleLabel
$HandlerLabel
sub sp,sp,#4 ;decrement sp(to store jump address)
stmfd sp!,{r0} USH 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} OP 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是干什么使用的?






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0