NASM 中符号名称定义后使用冒号与不使用冒号有区别吗?

发布于 2024-12-13 09:41:29 字数 110 浏览 2 评论 0原文

常量声明的两种形式:

len equ 2
len: equ 2

它们相同吗?

如果不是,那么每种申报表的优点或缺点是什么?

2 forms in constant declaration:

len equ 2
len: equ 2

Are they the same?

If not then what is the advantage or disadvantage of each declaration form?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

神仙妹妹 2024-12-20 09:41:29

两者之间的功能区别:

len  equ 2
len: equ 2

完全没有区别。正如NASM 文档页面所述:

NASM 对行内的空格没有限制:标签前面可能有空格,或者指令前面可能没有空格,或者其他任何内容。 标签后面的冒号也是可选的。

(请注意,这意味着如果您打算在一行上单独编写 lodsb 代码,并且意外地输入了 lodab,那么这仍然是有效的源代码行,除了定义标签之外什么也不做。使用命令行选项运行 NASM -如果您在没有尾随冒号的行上单独定义标签,w+orphan-labels 会导致它发出警告。)

The functional difference between these two:

len  equ 2
len: equ 2

is no difference at all. As stated on the NASM doc page:

NASM places no restrictions on white space within a line: labels may have white space before them, or instructions may have no space before them, or anything. The colon after a label is also optional.

(Note that this means that if you intend to code lodsb alone on a line, and type lodab by accident, then that's still a valid source line which does nothing but define a label. Running NASM with the command-line option -w+orphan-labels will cause it to warn you if you define a label alone on a line without a trailing colon.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文