宏扩充的举例
例9.17:编写一个给任意寄存器或存储单元清零的宏定义。
解:
Clear | list : VARARG | ||
FOR | data:REQ, <list> | ||
mov data, 0 ENDM | |||
ENDM |
有了上面的宏定义,下面的二个宏引用都是正确的,尽管宏引用时所带的参数个数是不同的。这正是参数属性VARARG的作用所在。
Clear ax, bx
……
Clear si, cl, MemVar, edx ;MemVar是内存变量,任意类型都可以
http://zx.zynews.com/hyzx/yskt/5408113946.html
http://www.changsha.cn/bj/yl/ylzx/2014/0417/566336.html
http://www.changsha.cn/bj/yl/ylzx/2014/0417/566333.html
http://www.changsha.cn/bj/yl/ylzx/2014/0417/566332.html
http://www.zhiyin.cn/ylzx/gzpx/5399030260.html
http://www.zznews.cn/hyzx/jkxx/5429402073.html
http://www.zznews.cn/hyzx/jkxx/5429397122.html
http://zx.zynews.com/hyzx/yskt/5405506166.html
http://www.zznews.cn/hyzx/jkxx/5428941541.html
http://www.zznews.cn/hyzx/jkxx/5429300619.html
http://zx.zynews.com/hyzx/yskt/5408066530.html
http://zx.zynews.com/hyzx/yskt/5408077345.html
http://zx.zynews.com/hyzx/yskt/5408082663.html
http://zx.zynews.com/hyzx/yskt/5399493712.html
http://www.qdxw.com.cn/yx/yybd/2344759.html
http://www.zznews.cn/hyzx/jkxx/5416836145.html
http://www.zhiyin.cn/ylzx/gzpx/5396015327.html
http://www.zznews.cn/hyzx/jkxx/5416917449.html
http://zx.zynews.com/hyzx/yskt/5399501772.html
http://zx.zynews.com/hyzx/yskt/5405500310.html
http://zx.zynews.com/hyzx/yskt/5405501386.html
http://www.zznews.cn/hyzx/jkxx/5426636373.html
http://www.zhiyin.cn/ylzx/gzpx/5398210093.html
http://www.zznews.cn/hyzx/jkxx/5426641570.html
http://zx.zynews.com/hyzx/yskt/5405502902.html
http://www.zhiyin.cn/ylzx/gzpx/5398210551.html
http://zx.zynews.com/hyzx/yskt/5405503213.html
http://zx.zynews.com/hyzx/yskt/5405505653.html
http://zx.zynews.com/hyzx/yskt/5405506166.html
http://www.zznews.cn/hyzx/jkxx/5428941541.html
http://www.zznews.cn/hyzx/jkxx/5428982356.html
这二个宏引用展开时所得到的指令如下:
mov ax, 0
mov bx, 0
……
mov si, 0
mov cl, 0
mov MemVar, 0
mov edx, 0