0
szText MACRO Name, Text:VARARG
LOCAL lbl
jmp lbl
Name db Text,0
lbl:
ENDM
任何人都知道这个宏在做什么?宏在MASM32中做什么?
szText MACRO Name, Text:VARARG
LOCAL lbl
jmp lbl
Name db Text,0
lbl:
ENDM
任何人都知道这个宏在做什么?宏在MASM32中做什么?
它看起来像创建一个零终止的字符串(因此,sz)。字符串的符号是你传递给宏的任何参数,并且它包含你作为Text参数传递的任何内容,加上终止0.
它输出跳转指令跳过字符串,然后是字符串本身的字节。跳转的标签被声明为宏的本地,所以它不污染全局名称空间。
我已经完成了x86汇编语言已经有一段时间了,但我想这会将字符串数据放在代码段中,而不是放在数据段中,这似乎有点奇怪。
但似乎'Name db Text,0'永远不会运行,因为它总是被跳出来,对吧? – assem 2011-03-13 10:04:42
这只是数据。它不需要'运行'。事实上,它无法运行。汇编程序在源代码中看到它,并在obj文件中包含字节,并在obj文件中包含该符号。 – 2011-03-14 02:05:08
对不起,你能否详细说明'Name db Text,0'如何在从未运行时生效? – assem 2011-03-14 06:53:42