什么是MASM32中的宏?

时间:2011-03-13 07:08:19

标签: syntax masm32

  szText MACRO Name, Text:VARARG
    LOCAL lbl
      jmp lbl
        Name db Text,0
      lbl:
    ENDM

任何人都知道这个宏在做什么?

1 个答案:

答案 0 :(得分:1)

看起来它会创建一个以零结尾的字符串(因此,sz)。字符串的符号是您作为宏参数传递的任何内容,它包含您作为Text参数传递的任何内容,以及终止0。

它输出一个跳转指令跳过字符串,然后是字符串本身的字节。跳转的标签被声明为宏的本地标签,因此它不会污染全局命名空间。

我已经有一段时间了,因为我已经完成了x86汇编语言,但我想这会把字符串数据放在代码段中,而不是把它放在数据段中,这看起来有点奇怪。