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

Lin*_*Dao 3 x86 assembly nasm

2个表格在不断声明中:

len equ 2
len: equ 2
Run Code Online (Sandbox Code Playgroud)

它们是一样的吗?

如果没有,那么每份申报表的优缺点是什么?

pax*_*blo 5

这两者之间的功能差异:

len  equ 2
len: equ 2
Run Code Online (Sandbox Code Playgroud)

没有任何区别.如NASM文档页面所述:

NASM对行内的空白区域没有任何限制:标签可能在它们之前有空格,或者指令可能没有空格,或者任何东西.标签后的冒号也是可选的.

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