汇编语言中macro的用法

如果有一段程序需要多次使用,为使程序不重复书写这段程序,可用宏定义把所需要重复出现的程序块定义成宏指令,此后在宏指令出现的地方,宏汇编程序总是自动地把它们替换成相应的代码段。

**宏指令格式**
    [ 宏指令名 ]   MACRO  [形式参数,.........]
                    代码段
                   ENDM
在宏定义中,使用了“形式参数“,它们引用宏指令时被给出的一些名字或数值(实在参数)所替换。使用形式参数给宏指令带来了很大的灵活性。

(2)宏调用格式
[ 宏指令名 ] [实在参数, …]
比如:

delay macro
    mov r2,#200

    djnz r2,$

    endm
flash:
    setb p1.0

    delay

    clr p1.0

    delay

    sjmp flash

与子程序不同的是,子程序调用要用LCALL,子程序返回要用RET,而宏只是一段程序,子程序中用到时,编译程序自动将这段程序在该位置展开,所以宏调用其实相对与子程序而言占用的内存空间要大。

posted @ 2021-12-29 16:29  威武的大萝卜  阅读(614)  评论(0编辑  收藏  举报