在引用宏时,如果实参中含有特殊字符,而又要该特殊字符当作普通字符来出来,那么,就必须在该特殊字符前加上字符转义运算符“!”。
下面不使用和使用字符转义运算符的宏引用语句及其宏扩展的结果:
DEFMSG <Input One Number(>90):>
1 DB’Input One Number(90):’, 0DH, 0AH,’$’
;第一个“>”与字符“<”相比配,而不会把它当作“大于号”字符来处理
…
DEFMSG <Input One Number(!>90):>
1 DB’Input One Number(>90):’, 0DH, 0AH,’$’
;由于在第一个“>”字符前面有字符转义运算符“!”,所以,汇编程序会把第一个“>”当作“大于号”字符来处理,而把最后面的字符“>”当作是与前面“<”相比配的结束符。
9.2.4计算表达式运算符
在引用宏时,使用计算表达式运算符“%”表示把其后面表达式的结果当作实参进行替换,而不是该表达式的整个式子。
下面使用和不使用计算表达式运算符的宏引用语句及其宏扩展的结果:
DEFMSG %200+23-100
1DB’123’, 0DH, 0AH,’$’;先计算出表达式200+23-100的值,然后再把该值作为参数进行替换
…
DEFMSG 200+23-100
1DB’200+23-100’, 0DH, 0AH,’$’ ;把整个表达式200+23-100当作一个字符串来进行参数 |