专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »汇编语言 » 运算符的优先级:宏参数的特殊运算符 »正文

运算符的优先级:宏参数的特殊运算符

来源: 发布时间:星期三, 2008年12月10日 浏览:21次 评论:0
为了宏定义和引用的某些特殊需要,汇编程序还支持几个具体特定含义的运算符。
9.2.1连接运算符
在宏定义中,如果形式参数与其它字符连接在一起,或形式参数出现在字符串之中,那么,就必须使用连接运算符(&)。
例9.5定义一个转移宏JUMP,其一个参数决定转移类别,另一个参数指定转移目标。
解:
JUMPMACROCON,here
J&CONhere
ENDM

假设存在下面二个引用语句,那么,点击它们可得到扩展后的指令。
    JUMPmp,next
  1    Jmp next

    JUMPnz,next1
  1    Jnz next1

例9.6定义一个问候性的字符串宏GREETING,其一个参数说明字符串的变量名,另一个参数指名问候的对象。
解:
GREETINGMACROMSG,name
MSGDB ’Hello,&name’
ENDM

假设有下面引用语句,那么,点击它们将会扩展得到三个问候性的字符串定义。
    GREETINGSTR1,张三
  1    STR1 DB ’Hello,张三’

    GREETINGSTR2,李四
  1    STR2 DB ’Hello,李四’

    GREETINGMSG1,John
  1    MSG1 DB ’Hello,John’

9.2.2字符串整体传递运算符
字符串整体传递运算符是一对尖括号<>,用它括起来的内容将作为一个字符串来进行形式参数的整体替换。在宏引用时,如果实参内包含逗号、空格等间隔符,则必须使用该操作符,以保证实参的完整性。如果实参是某个具有特殊含义的字符,为了使它只表示该字符本身,也需要用该运算符括起来。
假设有下面定义字符串的宏DEFMSG,
DEFMSGMACROMSG
DB’&MSG’,0DH,0AH,’$’
ENDM

那么,使用和不使用该运算符的引用宏及其宏扩展如下所示:
    DEFMSG<Areyouready?>
  1    DB’Areyouready?’,0DH,0AH,’$’

    DEFMSGAreyouready?
  1    DB’Are’,0DH,0AH,’$’

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: