汇编语言MACRO和ENDM伪指令:定义宏

< 上一页宏过程简述 宏的调用简述下一页 >

定义一个宏使用的是 MACRO 和 ENDM 伪指令,其语法如下所示:

macroname MACRO parameter-1, parameter-2...
    statement-list
ENDM

关于缩进没有硬性规定,但是还是建议对 macroname 和 ENDM 之间的语句进行缩进。 同时,还希望在宏名上使用前缀 m,形成易识别的名称,如 mPutChar,mWriteString 和 mGotoxy。

除非宏被调用,否则 MACRO 和 ENDM 伪指令之间的语句不会被汇编。宏定义中还可以有多个形参,参数之间用逗号隔开。

参数

宏形参 (macro parameter) 是需传递给调用者的文本实参的命名占位符。实参实际上可能是整数、变量名或其他值,但是预处理程序把它们都当做文本。

形参不包含类型信息,因此,预处理程序不会检查实参类型来看它们是否正确。如果发生类型不匹配,它将会在宏展开之后,被汇编器捕获。

mPutChar 示例

下面宏 mPutChar 接收一个名为 char 的输入形参,通过调用本教程链接库的 WriteChar 将其显示在控制台:
mPutchar MACRO char
    push eax
    mov al,char
    call WriteChar
    pop eax
ENDM
< 上一页宏过程简述 宏的调用简述下一页 >

爱面试的程序媛,一个分享面试经验的公众号。跟着站长一起学习,每天都有进步。

通俗易懂,深入浅出,定时分享程序员面试的那点事。

面试如何造火箭?工作如何拧螺丝?都在这个公号哦。

扫描二维码关注公众号,免费领取价值 1000 元的求职面试资料(限时免费)!

当你决定关注「爱面试的程序媛」,你已然超越了90%的程序员!

爱面试的程序媛二维码
微信扫描二维码关注