求教MASM汇编的几个宏

来源:百度知道 编辑:UC知道 时间:2024/06/04 10:48:12
1.作用只是把所有参数连到一块
ComposeInst macro Inst,p1,p2,p3,p4,p5,p6,p7,p8,p9
&Inst p1&p2&p3&p4&p5&p6&p7&p8&p9
endm
为什么不是
ComposeInst macro Inst,p1,p2,p3,p4,p5,p6,p7,p8,p9
&Inst &p1&p2&p3&p4&p5&p6&p7&p8&p9
endm
既p1前为什么不用加“&”?
2.
guard MACRO p1:REQ, p2 := <Anonymous>
%ECHO There are &p1& &p2& have arrived at @Time.
ENDM
这个宏的两个参数后的冒号是什么意思?那个REQ又是什么意思?

1
如果是所有参数连到一块应该的形势是这样的
ComposeInst macro Inst,p1,p2,p3,p4,p5,p6,p7,p8,p9
Inst&p1&p2&p3&p4&p5&p6&p7&p8&p9
&Inst 前面什么都没有和什么结合呢 等于什么都没干 这样编译器估计也会报错
只有在带引号的定义中 这样是合法的 否则是非法的 不过我也不肯定 我没有测试过。
其实你不要想得太复杂 所谓宏汇编 编译器只是自动将字符替换掉 没干什么高明的事情

2冒号不属于特殊的宏运算符
倒是后面的%是个特殊宏运算符
具体什么意思我也猜不出来 不知道是什么编译环境