首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

宏定义MACRO请教

宏定义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是干什么使用的?

返回列表