2011-03-13 48 views

回答

1

它看起来像创建一个零终止的字符串(因此,sz)。字符串的符号是你传递给宏的任何参数,并且它包含你作为Text参数传递的任何内容,加上终止0.

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

我已经完成了x86汇编语言已经有一段时间了,但我想这会将字符串数据放在代码段中,而不是放在数据段中,这似乎有点奇怪。

+0

但似乎'Name db Text,0'永远不会运行,因为它总是被跳出来,对吧? – assem 2011-03-13 10:04:42

+0

这只是数据。它不需要'运行'。事实上,它无法运行。汇编程序在源代码中看到它,并在obj文件中包含字节,并在obj文件中包含该符号。 – 2011-03-14 02:05:08

+0

对不起,你能否详细说明'Name db Text,0'如何在从未运行时生效? – assem 2011-03-14 06:53:42